Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Server:Diferença entre PARTITION BY e GROUP BY


Eles são usados ​​em lugares diferentes. group by modifica toda a consulta, como:
select customerId, count(*) as orderCount
from Orders
group by customerId

Mas partition by apenas funciona em uma função de janela, como row_number :
select row_number() over (partition by customerId order by orderId)
    as OrderNumberForThisCustomer
from Orders

Um group by normalmente reduz o número de linhas retornadas acumulando-as e calculando médias ou somas para cada linha. partition by não afeta o número de linhas retornadas, mas altera como o resultado de uma função de janela é calculado.