我正在尝试使用下面的单元查询来查找第一天+1的记录计数。因为我们有hive 0.10版本,所以出错。
select
lead(count(*)) over (order by day),
day
from device_fact_kpis
where day=20160301 group
by day;失败: ParseException第1行:27缺少at‘(“近”)(在子查询源中,第1行:28)无法识别子查询源中“day”附近的输入
是否有一种方法可以在第二天找到计数,而不必使用铅函数,因为0.10没有铅函数。
发布于 2017-03-06 00:39:37
您的查询无论如何都不能工作,因为您需要在白天进行筛选之前执行lead()。
无论如何,您可以使用CTE和join。
with t as (
select day, count(*) as cnt
from table t
group by day
)
select day, cnt, tnext.cnt as next_cnt
from t left join
t tnext
on tnext.day = date_add(t.day, 1);编辑:
没有CTE的版本非常类似:
select day, cnt, tnext.cnt as next_cnt
from (select day, count(*) as cnt
from table t
group by day
) t left join
(select day, count(*) as cnt
from table t
group by day
) tnext
on tnext.day = date_add(t.day, 1);https://stackoverflow.com/questions/42615816
复制相似问题