Maison  >  Article  >  base de données  >  Comment puis-je utiliser la fonction SUM() pour des comparaisons dans une clause MySQL WHERE ?

Comment puis-je utiliser la fonction SUM() pour des comparaisons dans une clause MySQL WHERE ?

DDD
DDDoriginal
2024-11-04 06:07:29640parcourir

How Can I Use the SUM() Function for Comparisons in a MySQL WHERE Clause?

Utilisation de la fonction MySQL SUM() dans une clause WHERE

Dans MySQL, l'utilisation directe de la fonction SUM() dans une clause WHERE est limitée . Au lieu de cela, vous pouvez utiliser la clause HAVING en conjonction avec la fonction SUM().

WHERE SUM(cash) > 500 :
La requête fournie utilisant WHERE SUM(cash) > 500 ne fonctionnera pas car les fonctions d'agrégation comme SUM() ne peuvent pas être utilisées pour la comparaison dans une clause WHERE.

Clause HAVING :
Pour utiliser les fonctions d'agrégation à des fins de comparaison, vous devez utiliser la clause HAVING. La clause HAVING est utilisée avec la clause GROUP BY pour contraindre les résultats de regroupement.

Exemple de requête :
Pour trouver la première ligne où le total cumulé des espèces dépasse 500 :

<code class="sql">SELECT y.id, y.cash
FROM (SELECT t.id,
               t.cash,
               (SELECT SUM(x.cash)
                  FROM table x
                 WHERE x.id <= t.id) AS running_total
         FROM table t
     ORDER BY t.id) y
WHERE y.running_total > 500
ORDER BY y.id
LIMIT 1;</code>

Explication :

  • La sous-requête dérive le total cumulé pour chaque ligne.
  • L'alias de colonne pour le total cumulé peut être référencé dans la clause WHERE.
  • La requête est classée par ID et limitée à la première ligne pour récupérer le résultat souhaité.

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