按列进行条件计数
问题描述:
假设有一个表格,包含列 jobId
、jobName
和 Priority
,其中 Priority
是 1 到 5 之间的整数。目标是生成一个查询,统计具有特定 Priority
值的行数,并将结果以适合创建图表报告的格式显示。
解决方案:
为了达到预期的结果,可以使用条件表达式和聚合函数的组合:
<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
值,如果条件为真,则赋值为 1,否则赋值为 0。然后,这些值针对每个 jobID
和 JobName
组合进行求和。
GROUP BY
子句确保结果按 jobID
和 JobName
的唯一值分组,从而提供每个作业计数的细分。
通过这种方式格式化结果,您可以轻松地将它们嵌入到图表报告中,以可视化不同作业的 Priority
值分布。
以上是如何计算工作优先级并生成图表就绪数据?的详细内容。更多信息请关注PHP中文网其他相关文章!