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

Thêm một hàng tóm tắt với tổng số

Nếu bạn đang sử dụng phiên bản SQL Server 2008 trở lên, bạn có thể sử dụng ROLLUP() Chức năng GROUP BY:

SELECT
  Type = ISNULL(Type, 'Total'),
  TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;

Điều này giả định rằng Type cột không được có NULL và do đó, NULL trong truy vấn này sẽ chỉ ra hàng cuộn lên, hàng có tổng lớn. Tuy nhiên, nếu Type cột có thể có NULL của riêng nó, kiểu tính toán thích hợp hơn cho tổng hàng sẽ giống như trong câu trả lời của @ Declan_K, tức là sử dụng GROUPING() chức năng:

SELECT
  Type = CASE GROUPING(Type) WHEN 1 THEN 'Total' ELSE Type END,
  TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để khóa bảng khi đọc, sử dụng Entity Framework?

  2. Lệnh SQL INSERT đang hoạt động nhưng dữ liệu không xuất hiện trong bảng

  3. Nhập cột bảng tính Excel vào cơ sở dữ liệu SQL Server

  4. Cách tách một chuỗi trong SQL Server

  5. Cách nhanh nhất để chèn hàng loạt dữ liệu vào SQL Server (máy khách C #)