【发布时间】:2019-10-21 13:10:24
【问题描述】:
我有一张这样的表(其实是大查询的结果):
id | date_measured | out_of_range
-----+-----------------------+--------------
3147 | 09/08/2019 20.00:00 | 1
3147 | 09/08/2019 21.00:00 | 0
3147 | 09/08/2019 22.00:00 | 0
3147 | 09/08/2019 23.00:00 | 1
3147 | 10/08/2019 00.00:00 | 1
3147 | 10/08/2019 01.00:00 | 1
3147 | 10/08/2019 02.00:00 | 0
3125 | 09/08/2019 20.00:00 | 0
3125 | 09/08/2019 21.00:00 | 1
3125 | 09/08/2019 22.00:00 | 1
3125 | 09/08/2019 23.00:00 | 0
3125 | 10/08/2019 00.00:00 | 1
3125 | 10/08/2019 01.00:00 | 1
3125 | 10/08/2019 02.00:00 | 1
我需要这个结果:
id | date_measured_start | date_measured_end | consecutive_out_of_range
-----+-----------------------+-----------------------+--------------------------
3147 | 09/08/2019 20.00:00 | 09/08/2019 20.00:00 | 1
3147 | 09/08/2019 23.00:00 | 10/08/2019 01.00:00 | 3
3125 | 09/08/2019 21.00:00 | 09/08/2019 22.00:00 | 2
3125 | 10/08/2019 00.00:00 | 10/08/2019 02.00:00 | 3
即值 out_of_range = 1 和相对开始和结束日期的连续重复。
我尝试使用 this 解决方案,但我不能只为 out_of_range 设置连续的 1。价值。
【问题讨论】:
标签: oracle date datetime group-by