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

Elimina le righe per avere un massimo di x righe per gruppo nella tabella Oracle

Supponendo la combinazione (person_id, car_id) è unico nella tabella, puoi fare qualcosa del genere:

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);