Maison >base de données >tutoriel mysql >Comment compter les priorités de travail et générer des données prêtes à être graphiques ?

Comment compter les priorités de travail et générer des données prêtes à être graphiques ?

DDD
DDDoriginal
2025-01-09 22:56:43181parcourir

How to Count Job Priorities and Generate Chart-Ready Data?

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.

La clause

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!

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