sql >> データベース >  >> RDS >> Sqlserver

合計を含む要約行を追加します

    SQL Server 2008以降のバージョンを使用している場合は、ROLLUP()を使用できます。 GROUP BY関数:

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

    これは、Typeが 列にNULLを含めることはできないため、このクエリのNULLは、総計を含むロールアップ行を示します。ただし、Type 列には独自のNULLを含めることができます。行全体を計算するためのより適切なタイプは、@ Declan_Kの回答のようになります。つまり、GROUPING()を使用します。 機能:

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


    1. MySQL SELECT LIKEまたはREGEXPは、1つのレコード内の複数の単語に一致します

    2. AWSデータベース移行サービスDMS

    3. 欠落しているアーカイブログからスタンバイデータベースを回復する方法

    4. MySQLリストすべての手順