Unterscheidung von PARTITION BY und GROUP BY
Bei der Arbeit mit aggregierten Abfragen ist GROUP BY seit langem eine bekannte Option zum Sammeln von Daten. Mit dem Aufkommen von PARTITION BY wurde jedoch ein ähnliches Konzept eingeführt, das Fragen zu seiner Beziehung zu GROUP BY aufwirft.
Die Rolle von GROUP BY verstehen
GROUP BY wirkt auf Die Abfrageebene transformiert das gesamte Abfrageergebnis. Durch die Gruppierung von Zeilen basierend auf bestimmten Spalten werden die Daten komprimiert und Gesamtwerte (z. B. Anzahl, Durchschnitt, Summe) für jede Gruppe berechnet. Zum Beispiel:
select customerId, count(*) as orderCount from Orders group by customerId
PARTITION BY: Eine andere Perspektive
Im Gegensatz zu GROUP BY ist PARTITION BY mit Fensterfunktionen wie ROW_NUMBER() verknüpft. Es arbeitet im Rahmen von Fensterberechnungen und verändert die Art und Weise, wie diese Funktionen ihre Ergebnisse berechnen. Betrachten Sie das folgende Beispiel:
select row_number() over (partition by customerId order by orderId) as OrderNumberForThisCustomer from Orders
Wichtige zu beachtende Unterschiede
Das obige ist der detaillierte Inhalt vonGROUP BY vs. PARTITION BY: Was ist der Hauptunterschied bei aggregierten Abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!