# SUM

SUM é uma expressão de agregação que calcula a soma da expressão para um conjunto de linhas (consulte Agregações (funções de conjunto)). SUM é permitida apenas nas expressões que resultam em tipos de dado numéricos.

#### Sintaxe

    SUM ( [ DISTINCT | ALL ] Expressão )

Os qualificadores DISTINCT e ALL eliminam ou mantêm as linhas duplicadas. É assumido ALL se não for especificado nem ALL nem DISTINCT. Por exemplo, se a coluna contiver os valores 1, 1, 1, 1 e 2, SUM(coluna) retorna um valor maior que SUM(DISTINCT coluna).

Somente é permitida uma expressão de agregação DISTINCT por ExpressãoSeleção. Por exemplo, a seguinte consulta não é permitida:

    SELECT AVG (DISTINCT TEMPO_VÔO), SUM (DISTINCT MILHAS)
    FROM VÔOS

A expressão pode conter várias referências a colunas ou expressões, mas não pode conter outra agregação ou subconsulta. Deve ter como resultado um tipo de dado numérico nativo. Se uma expressão for avaliada como NULL, a agregação saltará este valor.

O tipo de dado do resultado é idêntico ao da expressão em que opera (pode estourar).

    -- descobrir a quantidade de assentos econômicos disponíveis:
    SELECT SUM (ASSENTOS_ECONÔMICOS) FROM LINHAS_AÉREAS;

    -- utilizar SUM fazendo referência a várias colunas
    -- (descobrir o número total de todos os assentos ocupados):
    SELECT SUM (ASSENTOS_ECONÔMICOS_OCUPADOS +
                ASSENTOS_EXECUTIVOS_OCUPADOS +
                ASSENTOS_PRIMEIRA_CLASSE_OCUPADOS) AS ASSENTOS_OCUPADOS
    FROM VÔOS_DISPONIBILIDADE;

Tópico pai: Funções nativas