De används på olika ställen. group by
ändrar hela frågan, som:
select customerId, count(*) as orderCount
from Orders
group by customerId
Men partition by
fungerar bara på en fönsterfunktion, som row_number
:
select row_number() over (partition by customerId order by orderId)
as OrderNumberForThisCustomer
from Orders
En group by
minskar normalt antalet rader som returneras genom att rulla upp dem och beräkna medelvärden eller summor för varje rad. partition by
påverkar inte antalet returnerade rader, men det ändrar hur en fönsterfunktions resultat beräknas.