You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整现有SQL查询新增司机未准假缺勤次数统计列

修改方案

你可以通过条件聚合实现新增未准假缺勤统计的需求,修改后的查询语句如下:

SELECT 
  driver, 
  callouts.id, 
  max(date) AS latest_absence_date, 
  count(*) AS total_absence_count,
  SUM(CASE WHEN callouts.EXCUSED = 1 THEN 1 ELSE 0 END) AS unexcused_absence_count
FROM employees
INNER JOIN callouts ON employees.id = callouts.id
WHERE employees.status = 0 
GROUP BY driver, callouts.id
ORDER BY driver

说明

  • 新增的SUM(CASE WHEN callouts.EXCUSED = 1 THEN 1 ELSE 0 END) AS unexcused_absence_count即为未准假缺勤次数字段:逐行判断当前缺勤记录的EXCUSED值,为1(未准假)就计入统计,最终求和得到对应司机的未准假缺勤总数。如果你使用的是MySQL等支持布尔表达式直接返回数值的数据库,还可以简化为SUM(callouts.EXCUSED = 1) AS unexcused_absence_count,效果完全一致。
  • 调整了原始语句的隐式逗号连接为显式INNER JOIN写法,关联逻辑更清晰,也更容易避免后续维护时出现关联条件遗漏的问题。
  • 补充了GROUP BY中的callouts.id字段,符合SQL严格模式下“SELECT的非聚合字段必须全部出现在GROUP BY中”的语法要求,避免数据库开启严格校验时出现语句报错。

内容的提问来源于stack exchange,提问作者drodsher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:45:02