Maison > base de données > tutoriel mysql > Comment compter les valeurs de colonnes conditionnelles dans SQL : un exemple basé sur les priorités ?

Comment compter les valeurs de colonnes conditionnelles dans SQL : un exemple basé sur les priorités ?

Mary-Kate Olsen
Libérer: 2025-01-10 06:56:43
original
372 Les gens l'ont consulté

How to Count Conditional Column Values in SQL:  A Priority-Based Example?

Nombre de colonnes conditionnelles SQL

Considérons un tableau appelé "Jobs" avec la structure suivante :

<code>jobId, jobName, Priority</code>
Copier après la connexion

Où « Priorité » est un nombre entier compris entre 1 et 5.

Énoncé du problème :

Vous devez créer une requête qui compte le nombre de lignes pour chaque niveau de priorité (1 à 5) dans la table "Jobs". La requête doit renvoyer des colonnes nommées respectivement « Priorité 1 » à « Priorité5 », représentant ces décomptes.

Solution :

Pour ce faire, utilisez l'instruction SQL suivante :

<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

Explication :

  • L'instruction CASE évalue la colonne "Priorité" de chaque ligne.
  • Si « Priorité » est égale à la valeur spécifiée (1, 2, 3, 4 ou 5), alors elle contribue pour 1 au décompte.
  • Si « Priorité » n'est pas égale à la valeur spécifiée, elle contribue à 0.
  • La fonction SUM agrège ces décomptes pour chaque niveau de priorité.
  • La clause GROUP BY regroupe les résultats par "jobId" et "jobName" (en supposant que vous souhaitiez inclure ces colonnes dans les résultats).

REMARQUE : Si vous souhaitez exclure "jobId" et "jobName", supprimez-les simplement des clauses SELECT et 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