Използват се на различни места. group by
променя цялата заявка, като:
select customerId, count(*) as orderCount
from Orders
group by customerId
Но partition by
просто работи върху функция на прозореца, като row_number
:
select row_number() over (partition by customerId order by orderId)
as OrderNumberForThisCustomer
from Orders
group by
обикновено намалява броя на върнатите редове, като ги навива и изчислява средни стойности или суми за всеки ред. partition by
не засяга броя на върнатите редове, но променя начина, по който се изчислява резултатът от функцията на прозореца.