SUM関数

SUM は行の集合に渡って合計値を計算する集約関数です。(集約 (集合関数)を参照してください。) SUMは数値型の式に対してのみ、適用することができます。

構文

SUM ( [ DISTINCT | ALL ]  )

DISTINCTおよびALLにより、重複を取り除いたり、留めたりできます。もしALLもDISTINCTもかかれなかった場合、ALLが指定されたものとみなします。例えば、列に1、1、1、1、2という値があるとして、SUM(col)はSUM(DISTINCT col)より大きな値を返します。

選択式には、DISTINCTを唯一つ置くことができます。例えば次の問合せは不可です。
SELECT AVG (DISTINCT flying_time), SUM (DISTINCT miles)
FROM Flights

には複数の列への参照や式を置くことができますが、他の集約や副問合せを置くことはできません。また評価した結果は組込みの数値型でなければなりません。もし式がNULLと評価された場合、集約はその値を無視します。

関数の結果の型は、関数が作用している式の型と同じです。(オーバーフローする可能性もあります。)

-- 全てのエコノミーシートを数えます。
SELECT SUM (economy_seats) FROM Airlines;

-- SUMを複数の列への参照に使います。
-- (購入された式の合計を計算します。)
SELECT SUM (economy_seats_taken + business_seats_taken + firstclass_seats_taken)
as seats_taken FROM FLIGHTAVAILABILITY;