我有一份工作清单,显示任何特定工作所进行的工作。在白天完成工作时,只添加一条记录并包含work_type。 工作不在周末进行。乔布斯可以在很长的一段时间内完成工作,在奇怪的一天和那里工作,但是在工作周期的某个时刻,工作应该持续一段时间。 我们的管理层希望能够在报告中突出显示任何未长期工作的工作。 围绕工作类型和团队名称还有一些其他条件,但主要问题在于时间问题。查找横跨周末的连续日期
那么......我如何找到至少连续两周(10个工作日)没有完成一致工作的工作?
接下来,作业164353将不会被包括在内,因为它有连续的必需的10天(忽略周末),而作业214325将被标记为9号的间隙打破了连续的天数序列。
JOB_ID W ACTION_DATE
---------- - -----------
164354 H 10-FEB-17
164354 H 13-FEB-17
164354 H 14-FEB-17
164354 H 15-FEB-17
164354 H 16-FEB-17
164354 H 17-FEB-17
164354 H 20-FEB-17
164354 H 21-FEB-17
164354 H 22-FEB-17
164354 H 23-FEB-17
164354 H 24-FEB-17
214325 H 01-MAR-17
214325 H 02-MAR-17
214325 H 03-MAR-17
214325 H 06-MAR-17
214325 H 07-MAR-17
214325 H 08-MAR-17
214325 H 10-MAR-17
214325 H 13-MAR-17
214325 H 14-MAR-17
214325 H 15-MAR-17
我有这个疑问,我可以连续生产组拥有多项针对每组天,但我在努力适应它跨越了周末。换句话说,下面的结果理想情况下将显示连续10天的数量。
WITH
groups AS (
SELECT
ROW_NUMBER() OVER (ORDER BY action_date) AS rn,
action_date -ROW_NUMBER() OVER (ORDER BY action_date) AS grp,
action_date
FROM test_job_list
WHERE job_id = 164354
)
SELECT count(*) AS num_consec_dates,
min(action_date) AS earliest,
max(action_date) AS latest
FROM groups
group by grp
ORDER BY num_consec_dates desc, earliest desc
NUM_CONSEC
DATES EARLIEST LATEST
---------- --------- ---------
5 20-FEB-17 24-FEB-17
5 13-FEB-17 17-FEB-17
1 10-FEB-17 10-FEB-17
这个问题是否相似? [14523906](http://stackoverflow.com/questions/14523906/find-users-who-worked-for-5-consecutive-days-with-date-range-in-output?rq=1) – Todd
@Todd - 谢谢。它确实看起来很相似,但我肯定需要在这个范围内留有空隙以便周末。 – BriteSponge