SQL Server: Difference between PARTITION BY and GROUP BY

时间:2021-01-05 16:34:43

https://*.com/questions/2404565/sql-server-difference-between-partition-by-and-group-by

 

They're used in different places. group by modifies the entire query, like:

select customerId, count(*) as orderCount from Orders group by customerId

But partition by just works on a window function, like row_number:

select row_number() over (partition by customerId order by orderId) as OrderNumberForThisCustomer from Orders

 

A group by normally reduces the number of rows returned by rolling them up and calculating averages or sums for each row.

partition by does not affect the number of rows returned, but it changes how a window function's result is calculated.