hive union all报错

今天在写一个sql的时候,使用了hive的union all,运行时报错。

sql如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
select dimension_name,dt,dtype_name,uv,new_uv,old_uv,pv,stay_time from temp_bi.uv
union all
select '平台' dimension_name
,dt
,app_platform dtype_name
,count(distinct mid) uv
,count(distinct case when is_new = 1 then mid end) new_uv
,count(distinct case when is_new = 0 then mid end) old_uv
,sum(pv_num) pv
,sum(stay_time) stay_time  --停留时长(秒)
from vipdw.dw_log_app_visit_ds1
where dt between get_dt_date(get_date(-1)) and get_dt_date(get_date(-1))
group by '平台' ,dt ,app_platform

报错信息如下:

1
FAILED: SemanticException 1:71 Top level UNION is not supported currently; use a subquery for the UNION. Error encountered near token 'app_platform'

hive不支持顶层的union all,使用子查询来解决即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
select from (
select dimension_name,dt,dtype_name,uv,new_uv,old_uv,pv,stay_time from temp_bi.uv
union all
select '平台' dimension_name
,dt
,app_platform dtype_name
,count(distinct mid) uv
,count(distinct case when is_new = 1 then mid end) new_uv
,count(distinct case when is_new = 0 then mid end) old_uv
,sum(pv_num) pv
,sum(stay_time) stay_time  --停留时长(秒)
from vipdw.dw_log_app_visit_ds1
where dt between get_dt_date(get_date(-1)) and get_dt_date(get_date(-1))
group by '平台' ,dt ,app_platform) a


本文转自菜菜光 51CTO博客,原文链接:http://blog.51cto.com/caiguangguang/1414086,如需转载请自行联系原作者
上一篇:keepalived报错


下一篇:Python将列表元素按指定个数分组小技巧