sql >> Databáze >  >> RDS >> Sqlserver

Přidejte souhrnný řádek se součty

Pokud používáte SQL Server 2008 nebo novější verzi, můžete použít ROLLUP() Funkce GROUP BY:

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

To předpokládá, že Type sloupec nemůže mít hodnoty NULL, takže hodnota NULL v tomto dotazu by označovala kumulativní řádek, ten s celkovým součtem. Pokud však Type sloupec může mít vlastní hodnoty NULL, správnější typ účtování pro celkový řádek by byl jako v odpovědi @Declan_K, tj. pomocí GROUPING() funkce:

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


  1. Jak najít tabulky, které obsahují konkrétní sloupec na serveru SQL Server

  2. Připojte se ke vzdálené databázi PostgreSql pomocí Powershell

  3. ORACLE a TRIGGERS (vloženo, aktualizováno, odstraněno)

  4. Obnovení zálohy databáze SQL Server na nižší verzi