SUM (Transact-SQL)

式の、すべての値または DISTINCT 値のみの合計を返します。SUM は、数値型列に対して使用できます。NULL 値は無視されます。後に OVER 句が続く場合があります。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

SUM ( [ ALL | DISTINCT ] expression )

引数

  • ALL
    すべての値に集計関数が適用されます。ALL が既定値です。
  • DISTINCT
    一意な値の合計を返すことを指定します。
  • expression
    定数、列、または関数と、算術演算子、ビットごとの演算子、および文字列演算子の組み合わせを指定します。expression は、真数データ型または概数データ型の式です。ただし、bit データ型は除きます。集計関数とサブクエリは使用できません。詳細については、「式 (Transact-SQL)」を参照してください。

戻り値の型

最も有効桁数の大きい expression のデータ型で、すべての expression 値の合計を返します。

式の結果 戻り値の型

int 型

int

decimal 型 (p, s)

decimal(38, s)

money 型と smallmoney

money

float 型と real

float

ms187810.note(ja-jp,SQL.90).gif重要 :
AVG(DISTINCT column_name)、COUNT(DISTINCT column_name)、MAX(DISTINCT column_name)、MIN(DISTINCT column_name)、および SUM(DISTINCT column_name) などの非重複集計関数は、CUBE または ROLLUP を使用している場合はサポートされません。使用した場合、SQL Server 2005 データベース エンジンはエラー メッセージを返し、クエリを取り消します。

A. 集計と行集計で SUM を使用する

次の 2 つの例では、集計関数と行集計関数の違いを示します。最初は、集計データのみを返す集計関数の例、2 番目は、詳細なデータと集計データを返す行集計関数の例です。

USE AdventureWorks;
GO
SELECT Color, SUM(ListPrice), SUM(StandardCost)
FROM Production.Product
WHERE Color IS NOT NULL AND ListPrice != 0.00 AND Name LIKE 'Mountain%'
GROUP BY Color
ORDER BY Color;
GO

以下に結果セットを示します。

Color                                 
--------------- --------------------- ---------------------
Black           27404.84              15214.9616
Silver          26462.84              14665.6792
White           19.00                 6.7926

(3 row(s) affected)

USE AdventureWorks;
GO
SELECT Color, ListPrice, StandardCost
FROM Production.Product
WHERE Color IS NOT NULL AND ListPrice != 0.00 AND Name LIKE 'Mountain%'
ORDER BY Color
COMPUTE SUM(ListPrice), SUM(StandardCost) BY Color;
GO

以下に結果セットを示します。

Color           ListPrice             StandardCost
--------------- --------------------- ---------------------
Black           2294.99               1251.9813
Black           2294.99               1251.9813
Black           2294.99               1251.9813
Black           1079.99               598.4354
Black           1079.99               598.4354
Black           1079.99               598.4354
Black           1079.99               598.4354
Black           3374.99               1898.0944
Black           3374.99               1898.0944
Black           3374.99               1898.0944
Black           3374.99               1898.0944
Black           539.99                294.5797
Black           539.99                294.5797
Black           539.99                294.5797
Black           539.99                294.5797
Black           539.99                294.5797

sum                   sum
--------------------- ---------------------
27404.84              15214.9616

Color           ListPrice             StandardCost
--------------- --------------------- ---------------------
Silver          2319.99               1265.6195
Silver          2319.99               1265.6195
Silver          2319.99               1265.6195
Silver          3399.99               1912.1544
Silver          3399.99               1912.1544
Silver          3399.99               1912.1544
Silver          3399.99               1912.1544
Silver          769.49                419.7784
Silver          769.49                419.7784
Silver          769.49                419.7784
Silver          769.49                419.7784
Silver          564.99                308.2179
Silver          564.99                308.2179
Silver          564.99                308.2179
Silver          564.99                308.2179
Silver          564.99                308.2179

sum                   sum
--------------------- ---------------------
26462.84              14665.6792

Color           ListPrice             StandardCost
--------------- --------------------- ---------------------
White           9.50                  3.3963
White           9.50                  3.3963

sum                   sum
--------------------- ---------------------
19.00                 6.7926

(37 row(s) affected)

B. 複数の列でグループ合計を計算する

次の例では、Product テーブルに一覧された色ごとに ListPriceStandardCost の合計を計算します。

USE AdventureWorks;
GO
SELECT Color, SUM(ListPrice), SUM(StandardCost)
FROM Production.Product
GROUP BY Color
ORDER BY Color
GO

以下に結果セットを示します。

Color                                 
--------------- --------------------- ---------------------
NULL            4182.32               2238.4755
Black           67436.26              38636.5002
Blue            24015.66              14746.1464
Grey            125.00                51.5625
Multi           478.92                272.2542
Red             53274.10              32610.7661
Silver          36563.13              20060.0483
Silver/Black    448.13                198.97
White           36.98                 13.5172
Yellow          34527.29              21507.6521

(10 row(s) affected)

参照

関連項目

集計関数 (Transact-SQL)
OVER 句 (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手