Oracle
 sql >> база данни >  >> RDS >> Oracle

Колоната се актуализира въз основа на предишен запис

Вярвам, че искате row_number() :

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

Можете да използвате merge за да поставите това в update изявление. Като алтернатива, ако наистина искате 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. Променете неуникален индекс на уникален индекс

  2. oracle jdbc драйвер версия лудост

  3. Използване на случай при вмъкване на стойности

  4. Можем ли да имаме множество WITH AS в един sql - Oracle SQL

  5. създаване на рамка от данни на pandas от заявка към база данни, която използва свързващи променливи