过滤Hive中的重复行:计算仅针对一个类别出现的唯一ID

时间:2016-04-24 19:49:46

标签: hive hiveql

我有一个带有ID和两个类别的配置单表。 ID可以是类别唯一的,也可以属于两个类别。我想只统计这两个类别中唯一的ID。

ID CATEGORY
1    A
2    A
3    B
2    B
3    B

在上面的示例中,我想返回ID 1和3但不是2.我尝试使用子查询,但它们似乎不允许在Hive中使用。

示例输出:

category unique_occurrences
A         1
B         1

我认为这样的东西在MS SQL Server中可以起作用:

select count(distinct t.ID) AS unique_occurrences, t.category
from table_1 t
where t.id not in (SELECT t2.id 
                   FROM table_1 t2
                   WHERE t.id = t2.id AND t.category != t2.category)

但我无法让它在Hive中工作。谢谢!

1 个答案:

答案 0 :(得分:0)

这是你在找什么?

select id
from t
group by id
having max(category) = min(category);

您的问题似乎表明您希望实际删除表中的行。但是,该示例表明您只想运行查询以获取“纯”ID。