Maison > base de données > tutoriel mysql > Comment compter les valeurs conditionnelles dans une colonne SQL ?

Comment compter les valeurs conditionnelles dans une colonne SQL ?

DDD
Libérer: 2025-01-09 22:52:47
original
989 Les gens l'ont consulté

How to Count Conditional Values in a SQL Column?

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal