给出一份医生和病人互动日期(VisitSchedule
)的清单,我想选择所有那些已经见过两个以上的独特病人的医生。我的问题是,为了隔离医生/病人,我需要同时按医生和病人分组。然后如何将结果限制为只返回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与这个相关,但我意识到我没有正确地解释分组的两列。我试图简化这个问题,以免过于冗长,结果我把它简单化了。
如果有人对"SQL难题“的书有任何建议,那就太好了。
发布于 2014-05-14 20:09:31
您开始的很好,这个查询应该会结束:
SELECT
vs.Physician
FROM
VisitSchedule vs
GROUP BY
vs.Physician
HAVING
COUNT(DISTINCT vs.Patient) > 2
https://stackoverflow.com/questions/23664065
复制相似问题