Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL кумулативен брой

Ето начин да го направите с CTE вместо с курсор:

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

Имайте предвид, че това е подреждане по низходящ Count както прави резултатът от вашата проба. Ако има друга колона, която не е показана и трябва да се използва за подреждане, просто заменете Count във всеки от ORDER BY клаузи.

Демонстрация на SQL Fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. HTML формат в sp_send_dbmail

  2. Активиране на поща от база данни в SQL Server (T-SQL)

  3. COUNT(DISTINCT) в множество колони в SQL Server 2008

  4. Възникна сериозна грешка в текущата команда при опит за вмъкване от свързан сървър

  5. Рекурсивни Child/Parent заявки в T/SQL