如何生成每个只有一个属性的ID表?

时间:2016-06-21 23:45:40

标签: sql hive hiveql

我有一张看起来像这样的表

id   attribute
1    a
1    a
2    b
2    a

我想收集所有仅具有属性a的ID。所以在示例中:

id
1

我最初的想法是使用where,但这会返回:

id
1
1
2

因为2还有一个" a"属性在一个实例中。

P.S。我意识到标题的措词含糊不清;也许在这种情况下使用比使用属性更好的术语?

2 个答案:

答案 0 :(得分:2)

哦,我刚看到蜂巢,但这是非常标准的sql尝试一下。

SELECT
    ID
FROM
    TABLENAME
GROUP BY
    ID
HAVING
    COUNT(DISTINCT attribute) = 1

在发生GROUP BY聚合之后,它就像是一个where语句。

答案 1 :(得分:0)

使用group byhavingdistinct

的HiveQL等效SQL
select id from (select id,count(distinct attribute) cnt from table_actual  group by id having cnt='1') tableouter;