QGIS'de sıralı tabloya göre sütun için satır numarası atamanın bir yolu var mı?


13

Alan hesaplayıcısı, "Kayıtlar" altında "$ rownum" adı verilen ve geçerli satırın numarasını döndüren (atayan) harika bir işleve sahiptir.

Sıralama ile birlikte çalışmanın bir yolu var mı? Tabloyu "uzunluk" sütununa göre sıralamak istediğimizi ve satırların sırasını (sırasını) en kısatan en uzuna almak istediğimi varsayalım.

Bu sütun göre sıralamak ve sipariş (sıra) ile yeni sütun doldurmak için kolayca bazı ofis elektronik tablo yazılımı kullanabilirsiniz biliyorum. Ama bütün işi QGIS'de yapmayı tercih ederim.

Güncelleme: Geçici çözüm olarak şekil dosyasındaki özelliklerin sırası nasıl değiştirilir? - mmqgis eklentisi ve function change / sort işlevini kullanarak ve bundan sonra yeni kaydedilen dosyada "$ rownum" kullanın.

Yanıtlar:


20

Bu yüzden, sorununuzu çözmek için bir eklenti ( Sıralama ve Numara ) kodladım. En fazla 3 alan seçmenize ve özellik tablonuzu bu alanlara göre sıralamanıza olanak tanır. Ardından, öznitelik tablosunu 1'den başlayarak yeni bir alanda (varsayılan olarak "sipariş" olarak adlandırılır) numaralandırır.

resim açıklamasını buraya girin


Mükemmel görünüyor. Şimdi bu eklentiyi test edeceğim, teşekkürler.
Miro

2.8'de ilk kez kurulduğunda bir hata ile geldi ancak 2.14'teki testten sonra ve 2.8'de geri döndüğünde mükemmel çalışıyor. Teşekkür ederim.
Miro

@Miro: rica ederim. Umarım diğer insanlar için de faydalı olacaktır.
ArMoraer

@ArMoraer - Harika bir eklenti!
Joseph

1
Bonn 3 için bunu yeniden kodlayabilir misiniz -> ben bu aracı sevdi!
lowsparked

7

Alan hesap makinesiyle yapabileceğinizden emin değilim, ancak aşağıdaki gibi bir sorgu ile sanal bir katman kullanabilirsiniz:

SELECT 
    * ,
    (SELECT count(*) FROM your_layer AS b WHERE a.length >= b.length) AS length_position
FROM your_layer AS a 
ORDER BY a.length

Teşekkür ederim, hala uzun vadeli sürüm 2.8 ile çalışıyorum, bu yüzden 2.14'te ilk kez sanal katmanı keşfettim. Dışında çok çok çok yavaş çalışıyor. Genel olarak bu kabul edilebilir, ancak eğer varsa diğer bazı cevaplar için biraz daha bekleyeceğim.
Miro
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.