MySQLでは、SUM()
集計関数は、指定された式の合計を返します。
また、式内のすべての異なる(一意の)値の合計を返すために使用することもできます。
構文
構文は次のようになります:
SUM([DISTINCT] expr) [over_clause]
サンプルデータ
Products
というテーブルがあるとします。 次のデータを使用:
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products;
結果:
+----------+---------------------------------+--------------+ | VendorId | ProductName | ProductPrice | +----------+---------------------------------+--------------+ | 1001 | Left handed screwdriver | 25.99 | | 1001 | Right handed screwdriver | 25.99 | | 1001 | Long Weight (blue) | 14.75 | | 1001 | Long Weight (green) | 11.99 | | 1002 | Sledge Hammer | NULL | | 1003 | Chainsaw | 245.00 | | 1003 | Straw Dog Box | 55.99 | | 1004 | Bottomless Coffee Mugs (4 Pack) | 9.99 | +----------+---------------------------------+--------------+
例
次のクエリを使用して、すべての価格の合計を取得できます。
SELECT SUM(ProductPrice)
FROM Products;
結果:
389.70
ここでは、価格情報はProductPrice
に保存されています 列なので、それを引数としてSUM()
に渡します。 次に、合計を計算して結果を返す関数。
ヌル値
SUM()
関数はNULL値を無視します。上記のサンプルテーブルでは、スレッジハンマーのProductPrice
にNULL値が含まれています。 列ですが、計算では無視されました。
フィルタリングされた結果
SUM()
関数は、クエリによって返された行を操作します。したがって、結果をフィルタリングすると、SUM()
の出力 それを反映します。
SELECT SUM(ProductPrice)
FROM Products
WHERE VendorId = 1001;
結果:
78.72
この場合、78.72は、指定されたベンダーが提供するすべての製品の合計です。
DISTINCT
キーワード
DISTINCT
を使用できます SUM()
を含むキーワード 個別の値のみを計算します。つまり、重複する値がある場合、それらは1つの値として扱われます。
例:
SELECT SUM(DISTINCT ProductPrice)
FROM Products;
結果:
363.71
私たちのテーブルには、同じ価格の2つのアイテムが含まれています(左ドライバーと右ドライバーの価格はどちらも25.99です)。 DISTINCT
キーワードを使用すると、これらの値の両方が1つとして扱われます。
ウィンドウ関数
OVER
を使用できます SUM()
を含む句 ウィンドウ関数を作成する関数。 SQL SUM()
を参照してください 例として初心者向け。