Maison > Article > base de données > Comment effectuer une agrégation conditionnelle dans MySQL sans « SUM IF » et « COUNT IF » ?
MySQL : méthodes alternatives d'agrégation conditionnelle avec 'SUM IF' et 'COUNT IF'
Considérez le scénario suivant : vous avez une table avec des colonnes nommées « heure » et « type » et souhaitez effectuer des calculs basés sur une condition. Par exemple, vous souhaiterez peut-être compter le nombre de lignes où la colonne « genre » est égale à 1 ou additionner la colonne « heure » uniquement pour les lignes où la colonne « genre » est 2.
Dans MySQL, la syntaxe d'utilisation de « SUM IF » ou « COUNT IF » n'est pas directement prise en charge. Au lieu de cela, vous pouvez utiliser l'instruction CASE pour obtenir une agrégation conditionnelle :
SELECT count(id), SUM(hour) as totHour, SUM(case when kind = 1 then 1 else 0 end) as countKindOne FROM table_name;
Cette requête compte le nombre total de lignes, additionne la colonne « heure » pour toutes les lignes et compte le nombre de lignes où le « kind' est égale à 1.
Pour plus d'informations sur l'agrégation conditionnelle dans MySQL, reportez-vous aux ressources suivantes :
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!