Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Optimale Oracle SQL-Abfrage, um Group-By für mehrere Spalten in einer einzelnen Tabelle mit ~ 7.000.000 Datensätzen abzuschließen

Obwohl Sie dies als Group-by-Abfrage formulieren, gibt es einen anderen Ansatz mit row_number(). Dies listet jede Zeile in der Gruppe auf, basierend auf der „order by“-Klausel. In der folgenden Abfrage wird jede Gruppe basierend auf external_reference und top_line_id aufgelistet, sortiert nach 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