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

Opdater kun duplikerede rækker med en MAX-funktion i SQL

Du kan definere brugerdefineret rækkefølge med case when klausul og brug derefter analytisk max() . Dette virkede for givne eksempler:

update t1 set age = (
    select max(age) keep (dense_rank last 
           order by case when age = 'Over 75'  then 1
                         when age = '66-74'    then 2
                         when age = 'Under 65' then 3
                         when age = '25-35'    then 4
                    end)
    from t1 tx where tx.name = t1.name )



  1. Hvordan laver man en ordentlig upsert ved hjælp af sqlalchemy på postgresql?

  2. Sådan filtreres poster med aggregeret funktion SUM

  3. Trænger mit bord til mere normalisering?

  4. Hvordan tilføjer man en where-klausul i en MySQL Insert-sætning?