Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Memperbarui kolom berdasarkan catatan sebelumnya

Saya yakin Anda ingin row_number() :

select t.*,
       (row_number() over (partition by c1, c2, c3, c4, c5 order by c6) - 1
       ) as "Count"
from t;

Anda dapat menggunakan merge untuk memasukkan ini ke dalam update penyataan. Atau, jika Anda benar-benar menginginkan update :

update t
    set count = (select count(*)
                 from t t2
                 where t2.col1 = t.col1 and t2.col2 = t.col2 and t2.col3 = t.col3 and
                       t2.col4 = t.col4 and t.col5 = t2.col5 and
                       t2.col6 < t.col6
                );


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UPPER() Fungsi di Oracle

  2. Bagaimana cara mengurai string yang dibatasi koma di PL/SQL?

  3. ubah ukuran kolom dalam tabel yang berisi data

  4. Mengapa sinonim Oracle mengembalikan jumlah baris yang berbeda ke tabel yang mendasarinya?

  5. Oracle:manfaatkan penggunaan dua indeks