Valeurs des conditions statistiques dans les colonnes SQL
Supposons que vous ayez une colonne appelée "Priorité" qui contient des valeurs entières comprises entre 1 et 5. Vous souhaitez générer un graphique montrant le nombre de chaque valeur de priorité. Par exemple, « Priorité1 » doit compter le nombre de lignes avec une valeur « Priorité » de 1, « Priorité2 » doit compter le nombre de lignes avec une valeur « Priorité » de 2, et ainsi de suite.
Solution :
Pour ce faire, vous pouvez utiliser une requête SQL avec une fonction d'agrégation conditionnelle :
<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 l'agrégation conditionnelle pour compter le nombre de lignes pour chaque valeur de priorité. L'expression CASE vérifie la valeur de Priorité et renvoie 1 si elle correspond à la valeur de priorité requise, sinon elle renvoie 0. La fonction SUM accumule ensuite ces valeurs pour produire le décompte final.
Si vous n'avez pas besoin des colonnes jobID et JobName dans les résultats, vous pouvez les supprimer de la clause SELECT et supprimer la clause 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>
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!