2012-05-02 12 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 

これは、LEFT OUTER後のT2変化から取得したレコードが行われるJOINためのサブ選択としてT2にcountry <> 'Mexico'を追加することが重要です。 t1からのレコードへの対応するエントリがない場合、NULLとして表示されます。

関連する問題