# 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;

親トピック: 組み込み関数