首页 >数据库 >mysql教程 >如何计算 SQL 中的条件列值:基于优先级的示例?

如何计算 SQL 中的条件列值:基于优先级的示例?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-10 06:56:43351浏览

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

SQL条件列计数

考虑一个名为“Jobs”的表,其结构如下:

<code>jobId, jobName, Priority</code>

其中“Priority”是1到5之间的整数。

问题陈述:

您需要创建一个查询,计算“Jobs”表中每个优先级(1到5)的行数。查询应分别返回名为“Priority1”到“Priority5”的列,代表这些计数。

解决方案:

为此,请使用以下SQL语句:

<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>

解释:

  • CASE语句评估每一行的“Priority”列。
  • 如果“Priority”等于指定值(1、2、3、4或5),则它对计数贡献1。
  • 如果“Priority”不等于指定值,则它贡献0。
  • SUM函数聚合每个优先级的这些计数。
  • GROUP BY子句按“jobId”和“jobName”分组结果(假设您希望在结果中包含这些列)。

注意:如果您希望排除“jobId”和“jobName”,只需将它们从SELECT和GROUP BY子句中删除即可。

以上是如何计算 SQL 中的条件列值:基于优先级的示例?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn