sql >> Databasteknik >  >> RDS >> Sqlserver

SQL kumulativt antal

Här är ett sätt att göra det med en CTE istället för en markör:

WITH Base AS
(
    SELECT ROW_NUMBER() OVER (ORDER BY [Count] DESC) RowNum,
    [Dept],
    [Count]
    FROM SR
)
SELECT SR.Dept, SR.Count, SUM(SR2.[Count]) Total
FROM Base SR
INNER JOIN Base SR2
    ON SR2.RowNum <= SR.RowNum
GROUP BY SR.Dept, SR.Count
ORDER BY SR.[Count] DESC

Observera att detta är ordning genom fallande Count som ditt provresultat gör. Om det finns någon annan kolumn som inte visas som ska användas för beställning är det bara att byta ut Count i var och en av ORDER BY klausuler.

SQL Fiddle Demo



  1. Oracle PL/SQL - Hur man undslipper kolon (:), misstolkas för bindningsvariabel

  2. Vilken MySQL-drivrutin för Node.js fungerar på Windows?

  3. Hur man uppdaterar glömt lösenord genom att skicka ett e-postmeddelande i mysql php

  4. Är merge-satsen tillgänglig i MySQL