Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Tambahkan baris ringkasan dengan total

Jika Anda menggunakan SQL Server 2008 atau versi yang lebih baru, Anda dapat menggunakan ROLLUP() Fungsi GROUP BY:

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

Ini mengasumsikan bahwa Type kolom tidak boleh memiliki NULL sehingga NULL dalam kueri ini akan menunjukkan baris rollup, baris dengan total keseluruhan. Namun, jika Type kolom dapat memiliki NULL sendiri, jenis akuntansi yang lebih tepat untuk total baris akan seperti pada jawaban @Declan_K, yaitu menggunakan GROUPING() fungsi:

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. OPSI (REKOMPILASI) Selalu Lebih Cepat; Mengapa?

  2. Trik penyetelan performa favorit

  3. Temukan nomor terkecil yang tidak digunakan di SQL Server

  4. Jatuhkan semua tabel yang namanya dimulai dengan string tertentu

  5. Mengapa UDF jauh lebih lambat daripada subquery?