我有一张看起来像这样的表
id attribute
1 a
1 a
2 b
2 a
我想收集所有仅具有属性a的ID。所以在示例中:
id
1
我最初的想法是使用where
,但这会返回:
id
1
1
2
因为2还有一个" a"属性在一个实例中。
P.S。我意识到标题的措词含糊不清;也许在这种情况下使用比使用属性更好的术语?
答案 0 :(得分:2)
SELECT
ID
FROM
TABLENAME
GROUP BY
ID
HAVING
COUNT(DISTINCT attribute) = 1
在发生GROUP BY
聚合之后,它就像是一个where语句。
答案 1 :(得分:0)
使用group by
,having
和distinct
select id from (select id,count(distinct attribute) cnt from table_actual group by id having cnt='1') tableouter;