SQL 速習チュートリアル

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 テーブルの抜粋です。

OrderDetailIDOrderIDProductIDQuantity
1102481112
2102484210
310248725
410249149
5102495140

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;