Sql 仅返回满足2个或更多条件的行

Sql 仅返回满足2个或更多条件的行,sql,Sql,我们正在尝试识别另一个表中包含2个或更多不同代码的患者。表中大约有20个代码,患者必须有2个以上的代码才能满足标准。你将如何着手撰写一份声明,使之生效?在伪代码中,我想我试图实现以下目标: 从表中选择*,其中有两个以上不同的代码与另一个表中的特定ID相匹配 127282 49 I10 127282 49 E78.5 127290 116 I10 127306 244 E78.5 127306 244 I10 127306 244 I58 127313 320 I10 12731

我们正在尝试识别另一个表中包含2个或更多不同代码的患者。表中大约有20个代码,患者必须有2个以上的代码才能满足标准。你将如何着手撰写一份声明,使之生效?在伪代码中,我想我试图实现以下目标:

从表中选择*,其中有两个以上不同的代码与另一个表中的特定ID相匹配

127282  49  I10
127282  49  E78.5
127290  116 I10
127306  244 E78.5
127306  244 I10
127306  244 I58
127313  320 I10
127313  320 E78.5
127344  560 E78.5
127367  726 E78.5
127375  782 I10
在这个例子中,唯一应该返回的是:127306


我试着使用have的变体,但没有达到预期效果

必须在HAVING子句中设置如下条件:

select id
from tablename
group by id
having count(distinct code) > 2

请参见。

必须在HAVING子句中设置如下条件:

select id
from tablename
group by id
having count(distinct code) > 2

请参阅。

您想
加入到另一个表、聚合和筛选:

select t.id
from t join
     codes c
     on t.code = c.code
group by t.id
having count(distinct t.code) >= 2;

您要将
联接到另一个表、聚合和筛选:

select t.id
from t join
     codes c
     on t.code = c.code
group by t.id
having count(distinct t.code) >= 2;

为什么要返回
127306
?此表中只有一个代码。为什么要返回
127306
?此表中只有一个代码。