sql >> Base de Datos >  >> RDS >> Sqlserver

Servidor SQL:diferencia entre PARTICIÓN POR y GRUPO POR

Se utilizan en diferentes lugares. group by modifica toda la consulta, como:

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

Pero partition by solo funciona en una función de ventana, como row_number :

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

Un group by normalmente reduce el número de filas devueltas enrollándolas y calculando promedios o sumas para cada fila. partition by no afecta el número de filas devueltas, pero cambia la forma en que se calcula el resultado de una función de ventana.