Използват се на различни места. 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 не засяга броя на върнатите редове, но променя начина, по който се изчислява резултатът от функцията на прозореца.