我正在处理查询拉取,我需要一些帮助。
我试图找出一种情况,当声明有 6 个月的间隙时,然后在没有 6 个月的间隙时获取下一个数字,然后获取所有这些数字。
示例 1:
ID Gap
1 0
2 4
3 1
4 8
5 1
6 6
7 1
因此,在这个例子中,有一个 8 的间隙,所以如果这是唯一的间隙 >= 6 那么我只会捕获那个间隙,但由于还有另一个 6 的间隙,我只想捕获 ID 7。
示例 2:
ID Gap
1 0
2 1
3 0
4 2
5 0
所以在这个例子中,没有间隙。所以我想获取所有这些 ID。
这一切都在sql中
最佳答案
那么,您可以使用窗口函数:
select id, gap
from (select t.*,
max(case when gap >= 6 then id end) over (order by id) as id_6
from t
) t
where id > id_6 or id_6 is null;
关于sql - 当有 6 个月的间隙时,抓取所有内容,如果没有 6 个月的间隙,则抓取所有 sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55104142/