Sie werden an verschiedenen Orten verwendet. group by
ändert die gesamte Abfrage, wie:
select customerId, count(*) as orderCount
from Orders
group by customerId
Aber partition by
funktioniert nur mit einer Fensterfunktion, wie row_number
:
select row_number() over (partition by customerId order by orderId)
as OrderNumberForThisCustomer
from Orders
Eine group by
reduziert normalerweise die Anzahl der zurückgegebenen Zeilen, indem sie zusammengefasst und Durchschnittswerte oder Summen für jede Zeile berechnet werden. partition by
wirkt sich nicht auf die Anzahl der zurückgegebenen Zeilen aus, ändert jedoch, wie das Ergebnis einer Fensterfunktion berechnet wird.