Maison  >  Article  >  base de données  >  Comment utiliser la fonction sum() dans MySQL

Comment utiliser la fonction sum() dans MySQL

青灯夜游
青灯夜游original
2022-06-17 18:52:0519387parcourir

Dans mysql, la fonction sum() est utilisée pour calculer la somme d'un ensemble de valeurs ou d'expressions. La syntaxe est "SUM (DISTINCT expression)". . La fonction sum() doit être utilisée avec l'instruction SELECT. Si la fonction SUM() est utilisée dans une instruction SELECT qui ne renvoie pas de lignes correspondantes, la fonction SUM() renverra NULL au lieu de 0 ; La fonction ignorera les colonnes lors du calcul des lignes avec une valeur NULL.

Comment utiliser la fonction sum() dans MySQL

L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.

fonction mysql sum()

La fonction SUM() est utilisée pour calculer la somme d'un ensemble de valeurs ou d'expressions. La syntaxe de la fonction SUM() est la suivante :

SUM(DISTINCT expression)
.
Paramètres Description
expression Obligatoire. Champ ou formule

Comment fonctionne la fonction SUM() ?

  • Si vous utilisez la fonction SUM dans une instruction SELECT qui ne renvoie aucune ligne correspondante, la fonction SUM renvoie NULL au lieu de 0.

  • L'opérateur DISTINCT permet de calculer des valeurs distinctes dans un ensemble. La fonction

  • SUM() ignorera les lignes avec des valeurs de colonne NULL lors du calcul.

Exemple d'utilisation de la fonction sum()

Afin de faciliter la compréhension, créez d'abord un tableau de scores des étudiants tb_students_score Le contenu des données du tableau des scores des étudiants est le suivant

mysql> SELECT * FROM tb_students_score;

Comment utiliser la fonction sum() dans MySQL

Utilisez la somme. () dans Le score total des notes des étudiants est calculé dans la table tb_students_score

mysql> SELECT SUM(student_score) AS score_sum FROM tb_students_score;

Comment utiliser la fonction sum() dans MySQL

Comme le montrent les résultats de la requête, la fonction SUM() renvoie la somme de toutes les notes des étudiants comme 942.

Connaissances approfondies :

MySQL SUM avec clause GROUP BY

Lorsqu'elle est combinée avec la clause GROUP BY, la fonction SUM() calcule la somme pour chaque regroupement spécifié dans la clause GROUP BY. Par exemple, le montant total de chaque commande peut être calculé à l'aide de la fonction SUM avec une clause GROUP BY comme suit :

SELECT orderNumber,
       FORMAT(SUM(quantityOrdered * priceEach),2) total
FROM orderdetails
GROUP BY orderNumber
ORDER BY SUM(quantityOrdered * priceEach) DESC;

Exécutez l'instruction de requête ci-dessus et obtenez les résultats suivants :

+-------------+-----------+
| orderNumber | total     |
+-------------+-----------+
|       10165 | 67,392.85 |
|       10287 | 61,402.00 |
|       10310 | 61,234.67 |
|       10212 | 59,830.55 |
*** 此处省略了一大波数据 *****
|       10116 | 1,627.56  |
|       10158 | 1,491.38  |
|       10144 | 1,128.20  |
|       10408 | 615.45    |
+-------------+-----------+
327 rows in set

MySQL SUM avec HAVING

Vous Vous pouvez utiliser la clause HAVING dans la fonction SUM pour filtrer les résultats en fonction de critères spécifiques. Par exemple, vous pouvez calculer la quantité totale de la commande et sélectionner uniquement les commandes dont le montant total est supérieur à 60 000. L'instruction de requête suivante -

SELECT orderNumber,
       FORMAT(SUM(quantityOrdered * priceEach),2)
FROM orderdetails
GROUP BY orderNumber
HAVING SUM(quantityOrdered * priceEach) > 60000
ORDER BY SUM(quantityOrdered * priceEach);

Exécutez l'instruction de requête ci-dessus et obtenez les résultats suivants -

Comment utiliser la fonction sum() dans MySQL

MySQL SUM et LIMIT

Supposons que vous souhaitiez calculer la somme des dix produits les plus chers du marché. products, vous pouvez créer la requête suivante :

SELECT SUM(buyprice)
FROM products
ORDER BY buyprice DESC
LIMIT 10;

Exécutez l'instruction de requête ci-dessus et obtenez le résultat suivant -

Comment utiliser la fonction sum() dans MySQL

Cela ne fonctionne pas car l'instruction SELECT avec la fonction SUM ne renvoie qu'une seule ligne et la clause LIMIT la contrainte sur le nombre de lignes à renvoyer n'est pas valide. Pour résoudre ce problème, utilisez la sous-requête suivante :

SELECT FORMAT(SUM(buyprice),2) FROM
(SELECT buyprice
FROM products
ORDER BY buyprice DESC
LIMIT 10) price;

Exécutez l'instruction de requête ci-dessus et obtenez les résultats suivants -

Comment utiliser la fonction sum() dans MySQL

Comment l'instruction ci-dessus s'exécute-t-elle ? La sous-requête sélectionne les dix produits les plus chers. La requête externe calcule la somme des 10 produits les plus chers renvoyés par la sous-requête.

MySQL SUM vs NULL

S'il n'y a pas de lignes correspondantes, la fonction SUM renvoie une valeur NULL. Parfois, vous souhaitez que la fonction SUM renvoie 0 au lieu de NULL. Dans ce cas, vous pouvez utiliser la fonction COALESCE. La fonction COALESCE accepte deux paramètres. Si le premier paramètre est NULL, le deuxième paramètre est renvoyé, sinon le premier paramètre est renvoyé ; reportez-vous à l'instruction de requête suivante :

SELECT COALESCE(SUM(quantityOrdered * priceEach),0)
FROM orderdetails
WHERE productCode = 'S1_212121';

Exécutez l'instruction de requête ci-dessus et obtenez les résultats suivants : 

Comment utiliser la fonction sum() dans MySQL

【Recommandation associée : tutoriel vidéo mysql

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn