Maison >base de données >tutoriel mysql >Comment compter les priorités des tâches à l'aide de requêtes SQL conditionnelles ?
Utiliser des requêtes de comptage conditionnelles pour l'analyse prioritaire
Dans l'analyse des données, le comptage conditionnel est souvent nécessaire pour extraire des informations à partir de données catégorielles. Prenons un tableau contenant les colonnes "jobId", "jobName" et "Priority", où "Priority" va de 1 à 5. Nous devons créer une requête qui compte le nombre de lignes pour chaque niveau de priorité.
Requête à l'aide de l'instruction CASE :
La requête suivante utilise une instruction CASE pour effectuer un comptage conditionnel pour chaque niveau de priorité :
<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>
Pour chaque ligne, l'instruction CASE vérifie si la valeur "Priorité" correspond au nombre spécifié (par exemple, Priorité1 est 1). L'expression renvoie 1 si vrai et 0 si faux. La fonction SUM agrège ensuite ces valeurs pour chaque groupe (déterminé par "jobId" et "jobName").
Supprimer l'ID de travail et le nom de travail :
Si vous n'avez pas besoin d'inclure "jobId" et "jobName" dans les résultats, vous pouvez les supprimer en modifiant les clauses SELECT et GROUP BY :
<code class="language-sql">SELECT 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</code>
Cette requête simplifiée renverra uniquement le nombre de conditions pour chaque niveau de priorité.
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!