Hadoop 配置单元:在“选择”中使用“选择”

Hadoop 配置单元:在“选择”中使用“选择”,hadoop,hive,hiveql,Hadoop,Hive,Hiveql,首先,我使用了查询: select name from tab1 where id in (select id from (select id,count(id) as a from tab2 group by id order by a desc limit 1) ; 我开始知道在蜂巢里选择是不可能的。 所以我用变量修改了它 set var1= sel

首先,我使用了查询:

select name
from tab1
where id in (select id
             from (select id,count(id) as a 
                   from tab2
                   group by id
                   order by a desc limit 1) ;
我开始知道在蜂巢里选择是不可能的。 所以我用变量修改了它

set var1= select count(id) as a from tab2 group by id order by a desc limit 1;

select name from tab1 group by name having count(id)='${hiveconf:var1}';
但是在
'${hiveconf:var1}'
的位置,查询被替换,并且再次得到相同的错误


有什么方法可以做到这一点吗?

运行第一个查询时出现了什么错误?配置单元中的每个子查询都必须有一个别名。运行第一个查询时出现了什么错误?配置单元中的每个子查询都必须有别名。出现以下错误。错误[10128]:尚未支持UDAF“count”的位置在内部选择的order by中没有点。完全移除它。@Andrew-它附带了
limit
Ah,错过了。您对使用别名所做的更改应能正常工作。出现以下错误。错误[10128]:尚未支持UDAF“count”的位置在内部选择的order by中没有点。完全移除它。@Andrew-它附带了
limit
Ah,错过了。您对使用别名所做的更改应该可以正常工作。
select  t1.name 

from            tab1 t1 

        join   (select      id
                           ,count(*) as cnt
                from        tab2 
                group by    id 
                order by    cnt desc 
                limit       1
                ) t2 

        on      t2.id = t1.id