Hive 在配置单元中获取数据的交集
我在hive中有以下数据:Hive 在配置单元中获取数据的交集,hive,Hive,我在hive中有以下数据: userid cityid 1 15 2 15 1 7 3 15 2 8 3 9 3 7 我只想保留具有cityid 15和cityid 7的userid(在我的示例中,它将是userid的1和3)。 我试过: 但对于蜂巢来说,它不起作用。 有人能帮忙吗 谢谢 好的,我找到了方法: select a.userid from (select userid from table where cityi
userid cityid
1 15
2 15
1 7
3 15
2 8
3 9
3 7
我只想保留具有cityid 15和cityid 7的userid(在我的示例中,它将是userid的1和3)。
我试过:
但对于蜂巢来说,它不起作用。
有人能帮忙吗
谢谢 好的,我找到了方法:
select a.userid from (select userid from table where cityid = 15) a join (select userid from table where cityid = 7) b on a.userid = b.userid;
尝试避免自连接
SELECT userid
FROM
( SELECT userid, collect_set( cityid) as cities
FROM table
GROUP BY userid
)
WHERE array_contains( cities, 7 )
AND array_contains( cities, 15 );
事实上,这个答案是错误的,因为我想要同时拥有cityid 15和cityid 7的用户。
SELECT DISTINCT userid FROM table_name WHERE cityid == 15 OR cityid == 7;
SELECT userid
FROM
( SELECT userid, collect_set( cityid) as cities
FROM table
GROUP BY userid
)
WHERE array_contains( cities, 7 )
AND array_contains( cities, 15 );