SUM (Transact-SQL)

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

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

構文

SUM ( [ ALL | DISTINCT ] expression )

引数

  • ALL
    すべての値に集計関数が適用されます。ALL が既定値です。

  • DISTINCT
    一意な値の合計を返すことを指定します。

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

戻り値の型

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

式の結果

戻り値の型

tinyint

int

smallint

int

int

int

bigint

bigint

decimal 型 (p, s)

decimal(38, s)

money 型と smallmoney 型

money

float 型と real 型

float

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

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

USE AdventureWorks2008R2;
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 行処理されました)

USE AdventureWorks2008R2;
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 行処理されました)

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

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

USE AdventureWorks2008R2;
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 行処理されました)

関連項目

参照