2012-05-02 148 views

回答

2

我不知道蜂巢查询语言。根据我在这里阅读的内容:Hive Queries on Tables,以下脚本可能有效。试一试。

脚本

SELECT  name 
FROM  mytable 
GROUP BY name 
HAVING  AVG((CASE WHEN country = 'Mexico' THEN 1 ELSE 0 END) * 1.) >= 1 
+0

太棒了。感谢您的回答,但这也终于让我明白如何更灵活地使用AVG,CASE和其他SQL函数! –

1

这样的事情可能会奏效。

SELECT t1.Name 
FROM names_in_countries t1 
     LEFT OUTER JOIN (SELECT Name, 
           Country 
         FROM names_in_countries 
         WHERE Country <> 'Mexico') t2 
     ON (t1.Name = t2.Name) 
WHERE t1.Country = 'Mexico' 
     AND t2.Country IS NULL 

这是至关重要的,以在T2加country <> 'Mexico'作为子选择,因为LEFT OUTER后从T2变化检索到的记录进行JOIN。如果t1中没有相应的记录,它们将显示为NULL。

相关问题