Saltar al contenido principal
Página traducida

Esta página se tradujo del inglés con ayuda de IA. Si hay diferencias entre ambas, la versión en inglés es la referencia.

SUM

Devuelve la suma de todos los valores distintos de NULL de una columna o agrupación de columnas.

Consulte también:
[SELECT] [TOTAL]


consejo

Use la función TOTAL para sumar números de punto flotante o valores largos.

Sintaxis​

SELECT SUM(columnExpression) FROM <multipartIdentifier>
[ GROUP BY groupByColumn ];

Argumentos​

columnExpression
Una columna o expresión.

Si todos los valores de columnExpression son NULL, SUM devuelve NULL.

SUM genera una excepción "integer overflow" si se produce un desbordamiento de enteros en algún momento del cálculo. La función [TOTAL]](/language-spec/functions/aggregate/total) nunca genera un desbordamiento de enteros.

groupByColumn
Una o varias columnas sobre las que se realizan operaciones de resumen o de agregación. La cláusula GROUP BY devuelve una fila por cada agrupación de columnas.

Valor(es) devuelto(s)​

Devuelve un entero que representa la suma de columnExpression si todas las entradas distintas de NULL son enteros. Si alguna entrada no es un entero o es NULL, se devuelve un valor de punto flotante que puede ser una aproximación de la suma real.


Ejemplos​

Devolver la suma de una expresión de columna en todo un recurso​

SELECT sum(json_array_length(disks)) as sum_disks
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';

Devolver la suma de una expresión de columna agrupada por otra expresión de columna​

SELECT tags, sum(json_array_length(disks)) as sum_disks
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a'
GROUP BY json_extract(tags, '$.instanceType');

Usar SUM como función de ventana para calcular totales acumulados​

-- Calculate running total and percentage of contributions
SELECT
login,
contributions,
SUM(contributions) OVER (ORDER BY contributions DESC) as running_total,
SUM(contributions) OVER () as total_contributions,
ROUND(100.0 * contributions / SUM(contributions) OVER (), 2) as pct_of_total
FROM github.repos.contributors
WHERE owner = 'stackql'
AND repo = 'stackql';

Para obtener más información, consulte https://www.sqlite.org/lang_aggfunc.html#sumunc.