根据医生和患者的互动日期列表(VisitSchedule
),我想选择所有看过2位以上独特患者的医生。我的问题是,为了隔离医生/患者,我需要由医生和患者进行分组。然后,我如何限制结果,只返回Dr. Moody
?由于他已经看到三(3)名独特患者,Dr. Franks
只见过两(2)名独特患者,即使他总共有更多的就诊?
Physician Patient VisitDate
-------------------------------------
Dr. Moody Danny 5/1/2013
Dr. Moody Danny 5/3/2013
Dr. Moody Danny 5/7/2013
Dr. Moody Paul 4/11/2013
Dr. Moody Paul 5/10/2013
Dr. Moody James 5/1/2013
Dr. Franks Allison 4/18/2013
Dr. Franks Allison 4/24/2013
Dr. Franks Tammy 4/11/2013
Dr. Franks Tammy 4/14/2013
Dr. Franks Tammy 5/11/2013
Dr. Franks Tammy 5/12/2013
Dr. Franks Tammy 5/17/2013
SELECT Physician
FROM VisitSchedule
GROUP BY Physician, Patient
HAVING (COUNT(Physician) > 2)
我是否错误地使用COUNT
?
请注意我的last question与此相关,但我意识到我没有用两列正确解释分组。我试图简化这个问题,不要让它过于冗长,我最终过度简化。
P.S。如果有人对“SQL拼图”书籍有任何建议,这将有助于实现这样的问题很好。
答案 0 :(得分:3)
你开始很好,这个查询应该结束:
SELECT
vs.Physician
FROM
VisitSchedule vs
GROUP BY
vs.Physician
HAVING
COUNT(DISTINCT vs.Patient) > 2