Ze worden op verschillende plaatsen gebruikt. group by
wijzigt de hele zoekopdracht, zoals:
select customerId, count(*) as orderCount
from Orders
group by customerId
Maar partition by
werkt gewoon op een vensterfunctie, zoals row_number
:
select row_number() over (partition by customerId order by orderId)
as OrderNumberForThisCustomer
from Orders
Een group by
vermindert normaal gesproken het aantal geretourneerde rijen door ze op te rollen en gemiddelden of sommen voor elke rij te berekenen. partition by
heeft geen invloed op het aantal geretourneerde rijen, maar het verandert hoe het resultaat van een vensterfunctie wordt berekend.