Mengisi kolom dengan angka berurutan dalam QGIS?


30

Saya membuat kolom baru di tabel atribut saya dan memiliki nilai default (misalnya 0). Saya ingin (mungkin menggunakan kalkulator lapangan) memiliki hasil bahwa baris 1 memiliki nilai 1, baris 2 = 2 dan seterusnya, sama seperti indeks bernomor.

Saya akan berterima kasih untuk contoh kode untuk kalkulator lapangan (termasuk penggunaan $rownum(saya pikir saya perlu ini untuk beralih ke saluran)).

Jawaban:


54

Cukup cantumkan $rownum(QGIS 2) atau @row_number(QGIS 3+) sebagai ekspresi. Sederhana seperti itu. :)

Daftar terbaru dari semua fungsi kalkulator lapangan dapat dibaca di dokumen resmi .


Saya mengikuti pendekatan Anda, namun tanpa alasan yang jelas, jumlahnya berubah pada satu titik. Ini bekerja dengan sempurna dari baris 1 ke baris 129, dan setelah itu bergeser ke 789 ... apakah ada cara untuk menyelesaikan ini?
Guillaume

1
Pastikan Anda tidak memiliki filter tampilan aktif, karena tidak ada alasan untuk melompat.
lynxlynxlynx



1

Bagi saya cara terbaik dan termudah adalah hanya $id, ini akan mengembalikan idnomor dari setiap baris yang diindeks 0.


Ini mengembalikan setiap ID fitur, tetapi urutannya tidak harus dimulai pada 0 dan mungkin memiliki nilai yang hilang. Ini adalah kasus setelah menghapus fitur yang ada (yaitu mulai dengan layer memiliki 3 fitur, hapus # 2, panggilan ke $ id akan mengembalikan 0 dan 2.)
JGH

Anda benar, jika ada nilai yang hilang, maka akan ada masalah dengan nomor pengindeksan nyata. Namun, saya kira panggilan itu $id, setelah menghapus baris harus menguatkan @row_number. Jika saya benar memahami afirmasi Anda.
Vlad

tidak, itu akan meninggalkan lubang
JGH
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.