sql >> Databasteknik >  >> RDS >> Oracle

Ta bort rader för att ha maximalt x rader per grupp i Oracle-tabellen

Om du antar kombinationen (person_id, car_id) är unik i tabellen kan du göra något så här:

delete from car_assignment 
where (person_id, car_id) 
        in (select person_id, car_id
            from (
              select person_id, 
                     car_id, 
                     row_number() over (partition by person_id order by car_id) as rn
              from car_assignment
            ) t 
            where rn > 2);


  1. uppdatera tabellrader i postgres med hjälp av subquery

  2. Stora MySQL-tabeller

  3. Använda utökade händelser för att logga föråldrade funktioner som används i en SQL Server-instans (T-SQL-exempel)

  4. Jag har flera frågor vill slå samman alla sökresultat till samma tabell