仅返回符合2个或更多条件的行

时间:2019-09-23 16:43:30

标签: sql

我们正在尝试识别另一个表中包含2个或多个不同代码的患者。表格中大约有20个左右的密码,患者必须拥有2个以上的密码才能符合标准。您将如何编写一个使之生效的声明?我想用伪代码尝试实现以下目标:

从表中选择* *从两个表中匹配特定ID的代码超过2个

## app/models/incidental.rb
class Incidental < ApplicationRecord
  scope :electro -> { where category: 'electro' }
  ...
  ...

end

在此示例中,唯一应返回的内容是:127306

我尝试使用HAVING的变体,但未按预期工作。

2 个答案:

答案 0 :(得分:2)

您要join到另一个表,进行汇总和过滤:

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

答案 1 :(得分:0)

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

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

请参见link