union的巧妙用法,使用union也可以横向合并sql查询结果
为什么 在使用union效率会比较高,因为hive对union做了优化。
我们都知道union是纵向连接查询结果,join是横向,但是用union连接大家试过吗,未优化sql:
select ep.productid,productname,count(st.tduserid),count(distinct sl.tduserid),count(distinct sn.tduserid),avg(sl.interval_level)
from(select productid,productname from enterprise.product where productid = '3006090') ep
join(select tduserid,productid from tdanalytics.stg_td_web_page_ex where l_date <= '2019-04-07' and l_date >= date_add('2019-04-07', -6)) st
on ep.productid=st.productid
join(select tduserid,interval_level,productid from tdanalytics.stg_td_web_launch_ex where l_date <= '2019-04-07' and l_date >= date_add('2019-04-07', -6)) sl
on st.productid=sl.productid
join(select tduserid,productid from tdanalytics.stg_td_web_newuser_ex where l_date <= '2