Maison >base de données >tutoriel mysql >Comment compter les priorités des tâches à l'aide de requêtes SQL conditionnelles ?

Comment compter les priorités des tâches à l'aide de requêtes SQL conditionnelles ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-10 10:02:44263parcourir

How to Count Job Priorities Using Conditional SQL Queries?

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!

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