如何编写SQL单表查询 判断每日任务完成次数是否达3次合规要求
单表SQL任务每日合规校验实现方案
你之前逐行统计返回全部N的核心原因是没有先按维度分组统计每日总次数,直接对单行数据判断计数自然无法得到正确结果。
实现逻辑
- 先按
ID、Task、Date_performed三个维度分组,统计每组的当日任务执行总次数 - 通过条件判断语句,基于总次数标记合规状态,次数≥3标记为Y,否则标记为N
通用聚合统计SQL实现(每日单条汇总结果)
SELECT ID, Task, Date_performed, COUNT(*) AS daily_exec_count, CASE WHEN COUNT(*) >= 3 THEN 'Y' ELSE 'N' END AS Compliance FROM 替换为你的实际表名 -- 若仅需查询指定ID,可放开下方注释并替换目标ID值 -- WHERE ID = '指定查询的ID' GROUP BY ID, Task, Date_performed ORDER BY ID, Task, Date_performed;
明细行带合规标记SQL实现(保留原表所有行)
如果需要保留原始表的全部明细行,同时给每行打上对应分组的合规标记,可使用窗口函数实现:
SELECT ID, Task, Date_performed, CASE WHEN COUNT(*) OVER (PARTITION BY ID, Task, Date_performed) >=3 THEN 'Y' ELSE 'N' END AS Compliance FROM 替换为你的实际表名;
内容的提问来源于stack exchange,提问作者Dustin Rodriguez
相关产品推荐
相关产品推荐

