我的表如下所示:
<表类>
ID
假
日期
tbody><<tr>3 1 01.01.2021 3 1 01.02.2021 3 1 01.03.2021 3 0 01.04.2021 3 1 01.05.2021 3 0 01.06.2021 3 0 01.07.2021 3 0 01.08.2021 3 1 01.09.2021 3 1 01.10.2021 40 01.01.2021 40 01.02.2021 40 01.03.2021 41 01.04.2021 41 01.05.2021 40 01.06.2021 41 01.07.2021 40 01.08.2021 41 01.09.2021 41 01.10.2021 表类>
这就回答了原来的问题。
嗯…我的思考。把0加起来,然后按数字除以2分组。
select id, min(date), max(date),
row_number() over (partition by id order by min(date)) as grouping
from (select t.*,
sum(dummy - 1) over (partition by id order by date) as seqnum
from t
) t
where dummy = 1
group by id, ceil(seqnum / 2);