hive with子句和join语句

xqk2d5yq  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(450)

我有下面的查询,我正在尝试连接两个分组列的语句。

with ex as (
  select name, title,
  max(case when special = 'super' then max_power end ) as Super,
  max(case when special = 'awesome' then max_power end) as Awesome
from mytable
group by name, title)
inner join (select name, title,
  min(case when special = 'super' then max_power end) as Super,
  min(case when special = awesome' then max_power end) as Awesome
from mytable  mt
group by name, title) t2
on t2.title = ex.title;

在语句“inner”“join”(“in”)附近出现错误“cannot recognize input”

0yycz8jy

0yycz8jy1#

不知道你想做什么,但cte后面应该有另一个cte或a select , insert .
你可以用

select name, title,
  max(case when special = 'super' then max_power end) as Super_max,
  max(case when special = 'awesome' then max_power end) as Awesome_max,
  min(case when special = 'super' then max_power end) as Super_min,
  min(case when special = 'awesome' then max_power end) as Awesome_min
from mytable
group by name, title

使用 union all 如果列名必须相同。

select name, title,
  max(case when special = 'super' then max_power end) as Super,
  max(case when special = 'awesome' then max_power end) as Awesome
from mytable
group by name, title
union all
select name, title,
  min(case when special = 'super' then max_power end) as Super,
  min(case when special = 'awesome' then max_power end) as Awesome
from mytable
group by name, title

相关问题