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 ?

Comment puis-je utiliser l'agrégation conditionnelle dans MySQL pour compter et additionner des valeurs en fonction de critères spécifiques ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-16 08:41:03429parcourir

How can I use conditional aggregation in MySQL to count and sum values based on specific criteria?

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!

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