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

Tổng tích lũy SQL Server theo nhóm

Trong SQL Server 2005, tôi sẽ thực hiện việc này bằng cách sử dụng truy vấn con tương quan:

select dummy_id, date_registered, item_id, quantity, price,
       (select sum(quantity)
        from t t2
        where t2.item_id = t.item_id and
              t2.date_registered <= t.date_registered
       ) as cumulative
from table t;

Nếu bạn thực sự muốn thêm cột này vào một bảng, bạn cần phải thay đổi bảng để thêm cột và sau đó thực hiện cập nhật. Nếu bảng có chèn và cập nhật, bạn sẽ cần thêm trình kích hoạt để luôn cập nhật. Lấy nó thông qua một truy vấn chắc chắn dễ dàng hơn.

Trong SQL Server 2012, bạn có thể thực hiện việc này bằng cú pháp:

select dummy_id, date_registered, item_id, quantity, price,
       sum(quantity) over (partition by item_id order by date_registered) as cumulative
from table t;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đổi tên Ràng buộc KIỂM TRA trong SQL Server bằng T-SQL

  2. Làm cách nào để bạn sao lưu và khôi phục cơ sở dữ liệu dưới dạng bản sao trên cùng một máy chủ?

  3. Các câu trả lời hàng đầu cho 5 câu hỏi nhức nhối về hàm COALESCE trong SQL Server

  4. Kiểm tra không gian được sử dụng bởi một bảng trong SQL Server

  5. 5 Nguyên tắc truy vấn và cú pháp SQL để giám sát cơ sở dữ liệu tốt hơn