Są używane w różnych miejscach. group by
modyfikuje całe zapytanie, na przykład:
select customerId, count(*) as orderCount
from Orders
group by customerId
Ale partition by
po prostu działa na funkcji okna, takiej jak row_number
:
select row_number() over (partition by customerId order by orderId)
as OrderNumberForThisCustomer
from Orders
group by
zwykle zmniejsza liczbę zwracanych wierszy, zwijając je i obliczając średnie lub sumy dla każdego wiersza. partition by
nie wpływa na liczbę zwracanych wierszy, ale zmienia sposób obliczania wyniku funkcji okna.