Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Aktualizacja kolumny na podstawie poprzedniego rekordu

Wierzę, że chcesz row_number() :

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

Możesz użyć merge umieścić to w update oświadczenie. Alternatywnie, jeśli naprawdę chcesz 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. Pomoc dotycząca rekurencyjnych zapytań PL SQL

  2. Unikaj wstawiania wartości wykładniczej w kolumnie DB Float

  3. Lista rozdzielana przecinkami

  4. ADDM na SearchOracle.com

  5. Jak ustawić niestandardowy format daty i godziny w Oracle SQL Developer?