Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Łączna liczba SQL

Oto sposób na zrobienie tego za pomocą CTE zamiast kursora:

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

Zauważ, że jest to kolejność malejąca Count tak jak wynik próbki. Jeśli istnieje jakaś inna kolumna, która nie jest pokazana, a która powinna być użyta do zamawiania, po prostu zamień Count w każdym z ORDER BY klauzule.

Pokaz 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. Jak wyświetlić pasek postępu podczas wykonywania dużego SQLCommand VB.Net?

  2. Wyrażenia regularne w SQL Server

  3. Zduplikowane wpisy z różnymi znacznikami czasu

  4. Projekt księgowości i bazy danych, przechowywanie kwot debetowych i kredytowych

  5. Używając GETDATE() w wielu miejscach, czy lepiej jest używać zmiennej?