首页 > 数据库 > mysql教程 > 如何使用条件 SQL 查询计算作业优先级?

如何使用条件 SQL 查询计算作业优先级?

Mary-Kate Olsen
发布: 2025-01-10 10:02:44
原创
261 人浏览过

How to Count Job Priorities Using Conditional SQL Queries?

利用条件计数查询进行优先级分析

在数据分析中,经常需要进行条件计数来从分类数据中提取信息。考虑一个包含列“jobId”、“jobName”和“Priority”的表,其中“Priority”的取值范围为1到5。我们需要创建一个查询,计算每个优先级级别的行数。

使用CASE语句的查询:

以下查询使用CASE语句为每个优先级级别执行条件计数:

<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”值是否与指定数字匹配(例如,Priority1为1)。如果为真,则表达式返回1;如果为假,则返回0。然后,SUM函数将这些值针对每个组(由“jobId”和“jobName”确定)进行聚合。

去除jobID和jobName:

如果您不需要在结果中包含“jobId”和“jobName”,您可以通过修改SELECT和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>
登录后复制

这个简化的查询将只返回每个优先级级别的条件计数。

以上是如何使用条件 SQL 查询计算作业优先级?的详细内容。更多信息请关注PHP中文网其他相关文章!

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