Comptage conditionnel par colonne
Description du problème :
Supposons que vous ayez un tableau avec des colonnes jobId
, jobName
et Priority
, où Priority
est un entier compris entre 1 et 5. L'objectif est de générer une requête qui compte le nombre de lignes avec une valeur Priority
spécifique et d'afficher les résultats dans un format adapté à la création d'un rapport graphique.
Solution :
Pour obtenir les résultats souhaités, vous pouvez utiliser une combinaison d'expressions conditionnelles et de fonctions d'agrégation :
<code class="language-sql">SELECT jobID, JobName, SUM(CASE WHEN Priority = 1 THEN 1 ELSE 0 END) AS Priority1, SUM(CASE WHEN Priority = 2 THEN 1 ELSE 0 END) AS Priority2, SUM(CASE WHEN Priority = 3 THEN 1 ELSE 0 END) AS Priority3, SUM(CASE WHEN Priority = 4 THEN 1 ELSE 0 END) AS Priority4, SUM(CASE WHEN Priority = 5 THEN 1 ELSE 0 END) AS Priority5 FROM Jobs GROUP BY jobID, JobName;</code>
Cette requête utilise une expression CASE
pour rechercher une valeur Priority
spécifique et attribuer une valeur de 1 si la condition est vraie et de 0 sinon. Ces valeurs sont ensuite additionnées pour chaque combinaison jobID
et JobName
.
GROUP BY
garantit que les résultats sont regroupés par valeurs uniques de jobID
et JobName
, fournissant ainsi une répartition de chaque nombre de tâches.
En formatant les résultats de cette manière, vous pouvez facilement les intégrer dans des rapports graphiques pour visualiser la distribution des Priority
valeurs pour différentes tâches.
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!