我想找出所有带有空数据的句点,给出下表my_table
:
id day
29 2017-06-05
26 2017-06-05
30 2017-06-06
30 2017-06-06
21 2017-06-06
21 2017-07-01
29 2017-07-01
30 2017-07-20
答案是:
Empty_start Empty_end
2017-06-07 2017-06-30
2017-07-02 2017-07-19
考虑月数非常重要。例如,在第一行中,答案2017-06- 31 将是不正确的。
如何在Hive中编写此查询?
答案 0 :(得分:1)
您可以使用lag()
或lead()
:
select date_add(day, 1) as empty_start, date_add(next_day, -1) as empty_end
from (select day,
lead(day) over (order by day) as next_day
from t
group by day
) t
where next_day <> date_add(day, 1);