Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Số lượng tích lũy SQL

Đây là một cách để làm điều đó với CTE thay vì con trỏ:

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

Lưu ý rằng điều này sắp xếp theo thứ tự Count giảm dần giống như kết quả mẫu của bạn. Nếu có một số cột khác không được hiển thị nên được sử dụng để đặt hàng, chỉ cần thay thế Count trong mỗi ORDER BY mệnh đề.

SQL Fiddle Demo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng CRYPT_GEN_RANDOM () để tạo mật mã, số ngẫu nhiên trong SQL Server

  2. Chuyển mảng int sang proc được lưu trữ T-SQL thông qua khung thực thể

  3. Có cách nào tốt để gỡ lỗi Chuỗi hoặc dữ liệu nhị phân sẽ bị cắt bớt không?

  4. Cách tìm bảng phụ thuộc vòng tròn trong máy chủ sql

  5. ngắt dòng bị mất trong máy chủ sql