我有一个名为tbl_A的表,其架构如下:
插入后,我在tbl_A中有以下数据:
现在的问题是如何为以下场景编写查询:
在连续三天在场的员工面前
将(0)置于连续三天未到场的员工面前
输出屏幕拍摄:
我认为我们应该使用用例声明,但是我无法从日期起连续检查三天。我希望我能在这方面得到帮助
谢谢你

最佳答案

select name, case when max(cons_days) >= 3 then 1 else 0 end as presence
from (
  select name, count(*) as cons_days
  from tbl_A, (values (0),(1),(2)) as a(dd)
  group by name, adate + dd
)x
group by name

关于sql - 检查员工是否连续三天在场,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48159989/

10-08 23:16