我正在尝试NOT IN
在 Hive 查询语言中使用关键字。它似乎给了我一个错误:
SELECT Name
FROM names_in_countries
WHERE Country = 'Mexico'
AND Name NOT IN (
SELECT Name
FROM names_in_countries
WHERE Country <> 'Mexico')
我正在尝试NOT IN
在 Hive 查询语言中使用关键字。它似乎给了我一个错误:
SELECT Name
FROM names_in_countries
WHERE Country = 'Mexico'
AND Name NOT IN (
SELECT Name
FROM names_in_countries
WHERE Country <> 'Mexico')
我不知道 Hive 查询语言。根据我在这里阅读的内容:Hive Queries on Tables,以下脚本可能有效。试试看。
脚本:
SELECT name
FROM mytable
GROUP BY name
HAVING AVG((CASE WHEN country = 'Mexico' THEN 1 ELSE 0 END) * 1.) >= 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
country <> 'Mexico'
将on t2 添加为子选择至关重要,因为从 t2 检索到的记录在执行 LEFT OUTER JOIN 后会发生变化。如果 t1 中的记录没有对应的条目,它们将显示为 NULL。