Maison > base de données > tutoriel mysql > Comment compter efficacement les lignes conditionnelles par priorité en SQL ?

Comment compter efficacement les lignes conditionnelles par priorité en SQL ?

Mary-Kate Olsen
Libérer: 2025-01-10 07:39:45
original
575 Les gens l'ont consulté

How to Efficiently Count Conditional Rows by Priority in SQL?

SQL compte efficacement les lignes conditionnelles triées par priorité

Supposons que vous ayez une table qui stocke les informations sur la tâche, avec une colonne indiquant la priorité (un entier compris entre 1 et 5). Pour générer un rapport graphique affichant le nombre de tâches par priorité, vous devez créer cinq champs supplémentaires, chacun comptant le nombre de lignes avec une valeur de priorité spécifique.

La solution réside dans l'utilisation de l'instruction CASE dans la requête SELECT. Le code suivant fournit un moyen efficace et performant d'obtenir le résultat souhaité :

<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 essentiellement la fonction SUM() pour compter le nombre de lignes pour chaque niveau de priorité. Cependant, il utilise également l'instruction CASE pour exclure les lignes qui ne remplissent pas certaines conditions de priorité. Le résultat est un tableau avec des champs supplémentaires représentant le nombre de conditions.

Pour inclure uniquement le nombre de tâches et non le jobID et le JobName dans les résultats, supprimez simplement ces colonnes de l'instruction SELECT et supprimez la clause GROUP BY.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal