我如何找到有多个类型id的id多于一个..
Id Name Type_id
1 A 11
1 B 11
1 A 22
1 C 22
2 A 11
2 B 11
3 A 22
3 C 22
4 A 11
4 B 22
我需要一个输出,其中哪个ID有多个类型id,在上面的示例中,Id 1和4有多个类型ID 11,22
输出
Id
1
4
答案 0 :(得分:4)
这很简单:
select id
from t
group by id
having min(type_id) <> max(type_id);
这几乎是您的描述的直接翻译。 (注意:您也可以使用count(distinct)
,但这会产生更多开销。)
答案 1 :(得分:2)
SELECT Id
FROM name_table
GROUP BY Id
HAVING COUNT(DISTINCT Type_id) > 1
在此查询中,您正在对具有相同ID的所有记录进行分组,但只打印具有多个不同type_id的记录