sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server:Skillnaden mellan PARTITION BY och GROUP BY

De används på olika ställen. group by ändrar hela frågan, som:

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

Men partition by fungerar bara på en fönsterfunktion, som row_number :

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

En group by minskar normalt antalet rader som returneras genom att rulla upp dem och beräkna medelvärden eller summor för varje rad. partition by påverkar inte antalet returnerade rader, men det ändrar hur en fönsterfunktions resultat beräknas.



  1. Räkna tabellrader

  2. ORA-00947 Inte tillräckligt med värden när typ deklareras globalt

  3. Gräver djupare i Django-migrationer

  4. Ruby 'pg' pärla som länkar till fel kopia av libpq.5.dylib (på OSX)