首页 > 数据库 > mysql教程 > 如何计算 SQL 列中的条件值?

如何计算 SQL 列中的条件值?

DDD
发布: 2025-01-09 22:52:47
原创
1075 人浏览过

How to Count Conditional Values in a SQL Column?

在SQL列中统计条件值

假设您有一个名为“Priority”的列,其中包含1到5之间的整数值。您希望生成一个图表来显示每个优先级值的计数。例如,“Priority1”应统计“Priority”值为1的行数,“Priority2”应统计“Priority”值为2的行数,以此类推。

解决方案:

为此,您可以使用带有条件聚合函数的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;
登录后复制

此查询使用条件聚合来计算每个优先级值的行的数量。CASE表达式检查Priority的值,如果它与所需的优先级值匹配,则返回1,否则返回0。然后,SUM函数累加这些值以产生最终计数。

如果您不需要结果中的jobID和JobName列,可以将它们从SELECT子句中删除,并删除GROUP BY子句:

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;
登录后复制

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

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板