Maison > Article > base de données > Comment puis-je utiliser l'agrégation conditionnelle dans MySQL pour compter et additionner des valeurs en fonction de critères spécifiques ?
MySQL : Agrégation conditionnelle avec 'SUM IF' et 'COUNT IF'
Les fonctions d'agrégation comme SUM et COUNT sont essentielles pour résumer les données dans MySQL. Cependant, que se passe-t-il si vous devez appliquer des conditions à votre agrégation ? C'est là que l'agrégation conditionnelle entre en jeu.
Considérons un scénario dans lequel vous avez un tableau avec deux colonnes : « heure » et « type ». Vous souhaitez compter et additionner les valeurs « heures » selon que la valeur « type » correspondante est 1. Les fonctions d'agrégation traditionnelles ne peuvent pas gérer cela à elles seules.
Pour résoudre ce problème, MySQL propose l'instruction CASE, qui vous permet pour définir des conditions personnalisées pour l'agrégation. Voici une requête révisée utilisant une instruction CASE :
SELECT count(id), SUM(hour) as totHour, SUM(case when kind = 1 then 1 else 0 end) as countKindOne
Dans cette requête, l'instruction CASE vérifie si la valeur « kind » est égale à 1. Si elle est vraie, elle renvoie 1 ; sinon, il renvoie 0. Le résultat est ensuite additionné à l'aide de la fonction SUM() pour compter les occurrences de « genre » égales à 1.
En utilisant l'agrégation conditionnelle avec une instruction CASE, vous pouvez filtrer et agréger efficacement vos données en fonction de critères précis. Cette technique puissante ouvre un large éventail de possibilités d'analyse et de manipulation de données dans 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!