组内的条件行编号



我的表如下所示:

<表类> ID 假 日期 tbody><<tr>3101.01.20213101.02.20213101.03.20213001.04.20213101.05.20213001.06.20213001.07.20213001.08.20213101.09.20213101.10.20214001.01.20214001.02.20214001.03.20214101.04.20214101.05.20214001.06.20214101.07.20214001.08.20214101.09.20214101.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);

最新更新