SQL SUM() 関数
1. SQL SUM() 関数
SUM() 関数は、数値カラム内の値の合計を算出するために使用されます。
この SUM() 関数は、カラム内の NULL 値を無視して計算を行います。
次の SQL は、"OrderDetails" テーブルの Quantity(数量)フィールドの合計をリターンします。
1.1 例(自分専用の SQL Server を取得)
SELECT SUM(Quantity)
FROM OrderDetails;2. SUM() のシンタックス
SELECT SUM(column_name)
FROM table_name
WHERE condition;3. デモ用データベース
以下は、例題で使用する OrderDetails テーブルの抜粋です。
| OrderDetailID | OrderID | ProductID | Quantity |
|---|---|---|---|
| 1 | 10248 | 11 | 12 |
| 2 | 10248 | 42 | 10 |
| 3 | 10248 | 72 | 5 |
| 4 | 10249 | 14 | 9 |
| 5 | 10249 | 51 | 40 |
4. WHERE 句の追加
WHERE 句を追加して、特定の条件を指定することができます。
次の SQL は、"OrderDetails" テーブルの中で ProductID = 11 の製品に対する Quantity フィールドの合計をリターンします。
4.1 例
SELECT SUM(Quantity)
FROM OrderDetails
WHERE ProductId = 11;5. エイリアス(Alias)の使用
AS キーワードを使用することで、集計されたカラムに名前を付けることができます。
5.1 例
カラム名を "total" に設定する場合:
SELECT SUM(Quantity) AS total
FROM OrderDetails;6. GROUP BY と SUM() の併用
ここでは SUM() 関数と GROUP BY 句を併用して、"OrderDetails" テーブルの OrderID ごとの Quantity をリターンします。
6.1 例
SELECT OrderID, SUM(Quantity) AS [Total Quantity]
FROM OrderDetails
GROUP BY OrderID;※ GROUP BY 句の詳細については、このチュートリアルの後半で解説します。
7. 式(Expression)を用いた SUM()
SUM() 関数の内部に記述するパラメータには、エクスプレッション(式)を使用することも可能です。
例えば、"OrderDetails" テーブルの各製品の単価が一律 10 ドルであると仮定した場合、各数量に 10 を掛けることで合計収益(ドル)を算出できます。
7.1 例:SUM() 関数内で式を使用する
SELECT SUM(Quantity * 10)
FROM OrderDetails;また、仮定の 10 ドルではなく、"Products" テーブルと JOIN(結合)させることで、実際の価格に基づいた合計金額を算出することも可能です。
7.2 例:OrderDetails と Products を結合し、SUM() で合計金額を算出
SELECT SUM(Price * Quantity)
FROM OrderDetails
LEFT JOIN Products ON OrderDetails.ProductID = Products.ProductID;