Oracle
 sql >> Base de données >  >> RDS >> Oracle

Requête Oracle SQL optimale pour effectuer le regroupement sur plusieurs colonnes dans une seule table contenant environ 7 000 000 enregistrements

Bien que vous exprimez ceci comme un groupe par requête, il existe une autre approche utilisant row_number(). Cela énumère chaque ligne du groupe, en fonction de la clause "order by". Dans la requête suivante, il énumère chaque groupe en fonction de external_reference et top_line_id, classés par support_id :

select *
from (Select t.*,
             row_number() over (partition by external_reference, top_line_id
                                order by support_id) as seqnum
      from STAGE.SFS_GH_R3_IB_ENTLMNT_CONTACTS t
     )
where seqnum = 1