在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中文网其他相关文章!