我正在尝试浏览表格并检索缺勤频率指标。我已经有了一个查询,可以按月计算缺席次数。问题是我需要将当前记录与其他记录进行比较(在同一个表格中'测试')以检查有助于我进行频率计算的条件。 我考虑新频率的规则是:当两个病期不连续且两者之间有4天的差距时。
因此,我尝试使用条件计数()进行编码,如下所示:
WITH test (id, start_abs, end_abs, tmp) AS
(SELECT id, start_abs, end_abs, 0 AS tmp
FROM emp_absences
UNION ALL
SELECT id, start_abs + 1, end_abs, tmp + 1
FROM test
WHERE end_abs - start_abs > 0)
SELECT id, TO_CHAR(start_abs, 'yyyy-mm') AS abs_month,
COUNT(DISTINCT start_abs) AS nbr_abs_month,
COUNT(CASE WHEN NOT EXISTS (SELECT *
FROM test b
WHERE a.id = b.id AND a.start_abs - 4 = b.start_abs)
THEN debut_horaire ELSE NULL
END) AS frequency
FROM test a
GROUP BY 1, 2))
我想知道是否有可能通过这种方式这样做? 非常感谢。
Oracle版本:12.1.0.2.0
答案 0 :(得分:0)
为我工作
select Au.Username
,Au.User_Id
,count(case
when exists (select 1 from All_Users Au_Aux where Au.User_Id = Au_Aux.User_Id) then
Au.Created
else
null
end) as count
from All_Users Au
group by Au.Username
,Au.User_Id
我希望能帮助你。 感谢