利用条件计数查询进行优先级分析
在数据分析中,经常需要进行条件计数来从分类数据中提取信息。考虑一个包含列“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中文网其他相关文章!