Cette page a été traduite de l'anglais avec l'aide de l'IA. En cas de divergence, la version anglaise fait référence.
SUM
Renvoie la somme de toutes les valeurs non NULL d'une colonne ou d'un regroupement de colonnes.
Utilisez la fonction TOTAL pour additionner des nombres à virgule flottante ou de grandes valeurs.
Syntaxe
SELECT SUM(columnExpression) FROM <multipartIdentifier>
[ GROUP BY groupByColumn ];
Arguments
columnExpression
Une colonne ou une expression.
Si toutes les valeurs de columnExpression sont
NULL,SUMrenvoieNULL.
SUMlève une exception "integer overflow" si un dépassement d'entier se produit à un moment quelconque du calcul. La fonctionTOTALne lève jamais de dépassement d'entier.
groupByColumn
Une ou plusieurs colonnes sur lesquelles effectuer des opérations de synthèse ou d'agrégation. La clause GROUP BY renvoie une ligne pour chaque regroupement de colonnes.
Valeur(s) renvoyée(s)
Renvoie un entier représentant la somme de columnExpression si toutes les entrées non NULL sont des entiers. Si certaines entrées ne sont pas des entiers ou sont NULL, une valeur à virgule flottante, qui peut être une approximation de la somme réelle, est renvoyée.
Exemples
Renvoyer la somme d'une expression de colonne sur l'ensemble d'une ressource
SELECT sum(json_array_length(disks)) as sum_disks
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';
Renvoyer la somme d'une expression de colonne regroupée selon une autre expression de colonne
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');
Utiliser SUM comme fonction de fenêtrage pour calculer des totaux cumulés
-- 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';
Pour plus d'informations, consultez https://www.sqlite.org/lang_aggfunc.html#sumunc.