sql >> Database >  >> RDS >> Sqlserver

Voeg een samenvattingsrij toe met totalen

Als u SQL Server 2008 of een latere versie gebruikt, kunt u de ROLLUP() . gebruiken GROUP BY-functie:

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

Dit veronderstelt dat het Type kolom mag geen NULL's hebben en dus zou de NULL in deze query de samengetelde rij aangeven, die met het eindtotaal. Als de Type kolom kan eigen NULL's hebben, het juistere type boekhouding voor de totale rij zou zijn zoals in het antwoord van @Declan_K, d.w.z. met behulp van de GROUPING() functie:

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


  1. MariaDB Sharding met Spider implementeren met ClusterControl

  2. MySQL is nu() +1 dag

  3. Hoe de versie van oracle-provider voor ole-db te controleren. OraOLEDB.Oracle-provider

  4. Verbind de iPhone-app met PostgreSQL met behulp van Libpq