Hallo,
Ik heb in QGIS een attribuuttabel met 4 kolommen: fid, Route, Street_seg en seqnr_lbl. Route heeft altijd dezelfde waarde, in dit geval ‘108’. De kolom “Street_seg” bevat volgnummers van 1 t/m xxx (laatste rij). Maar, er zit een filter op de data, waardoor niet alle “Street_seg” waarden in deze tabel voorkomen. In het voorbeeld bijvoorbeeld de waarden 82 t/m 97.
Wat ik vervolgens wil, is met de gefilterde dataset de kolom “seqnr_lbl” vullen met opeenvolgende waarden, dus 1 t/m xx. Analoog dus aan de “Street_seg” waarden, en in dezelfde volgorde, maar dan uiteraard degene die niet gefilterd zijn overslaan.
Na wat gezoek ben ik erachter gekomen dat je wat met arrays kan stoeien. Bijvoorbeeld in de Field Calculator dit gebruiken:
array_find(array_agg($id, “Route”),$id) + 1
Bovenstaande blijkt inderdaad te werken in mijn geval. Maarrrr … het is wel tricky. Het werkt, mits in de tabel zelf de “Street_seg” kolom al in de goede volgorde staat. Er wordt namelijk niks gesorteerd in deze expressie.
Ik zou het graag wat degelijker doen, door in de expressie ook de sortering op het veld “Street_seg” te maken, zodat het gegarandeerd goed gaat. Dus iets met “array_sort” o.i.d.
Maar dat is me dus nog niet gelukt.
Iemand een geniaal idee?!