Maison > Article > base de données > Comment puis-je utiliser la fonction SUM() pour des comparaisons dans une clause MySQL WHERE ?
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 :
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!