sql >> Database teknologi >  >> RDS >> Oracle

Opdaterer kolonne baseret på tidligere registrering

Jeg tror, ​​du vil have row_number() :

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

Du kan bruge merge for at sætte dette i en update udmelding. Alternativt, hvis du virkelig ønsker en 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. Java - dato gemt som dagen før

  2. Hvordan uploader man Excel eller CSV til MySQL-database ved hjælp af PHP?

  3. Hvordan opsætter man brugernavn og adgangskode med Slicks kildekodegenerator?

  4. PostGIS-fejl:Kunne ikke vælge den bedste kandidatfunktion