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

Dodaj wiersz podsumowania z sumami

Jeśli korzystasz z SQL Server 2008 lub nowszej wersji, możesz użyć ROLLUP() Funkcja GROUP BY:

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

Zakłada się, że Type kolumna nie może mieć wartości NULL, więc wartość NULL w tym zapytaniu wskazuje wiersz zestawienia, ten z sumą końcową. Jeśli jednak Type kolumna może mieć własne wartości NULL, bardziej odpowiedni typ rozliczania dla wiersza sumy będzie taki, jak w odpowiedzi @Declan_K, tj. przy użyciu GROUPING() funkcja:

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. Różnica między datą i godziną w sqlserver?

  2. Filtruj według klauzuli wyjściowej sql

  3. Jak utworzyć tabelę za pomocą GUI w SQL Server — SQL Server / T-SQL Tutorial, część 37

  4. Jak używać operatora logicznego EXISTS w SQL Server — samouczek SQL Server / TSQL — część 125

  5. Programowe generowanie kodu sql