我正在使用一个健康数据库,并试图显示访问该医疗机构两次以上的患者。到目前为止,我的基本查询是
SELECT FirstName, LastName
FROM PATIENT
我知道我必须以某种方式在其中使用子查询,但是我不知道是否需要使用Count或任何其他运算符来查找访问两次以上的患者。
答案 0 :(得分:0)
您可以将带有访问和计数的联接用于计数(大于1)进行不同的(VisitDate)过滤
SELECT FirstName, LastName , count(distinct VisitDate)
FROM PATIENT
inner join VISIT on VISIT.patientID = PATIENT.PatientID
group by FirstName, LastName
having count(distinct VisitDate) > 1
答案 1 :(得分:0)
在我看来,您只需要将VISIT表与PATIENT表联接即可。
然后GROUP BY并通过HAVING限制访问次数。
SELECT p.FirstName, p.LastName
FROM VISIT v
JOIN PATIENT p ON p.PatientID = v.PatientID
GROUP BY v.PatientID, p.FirstName, p.LastName
HAVING COUNT(v.VisitID) > 2
ORDER BY COUNT(v.VisitID) DESC
答案 2 :(得分:0)
使用聚合函数select x.FirstName,x.LastName from (
SELECT a.FirstName, a.LastName,count(*) n
FROM PATIENTa,visit b
where a.patientid = b.patientid
group by a.FirstName, a.LastName having count(*) > 2
) x
和count
子句进行比较
having
通过使用子查询,您也可以获得相同的结果,但不需要第一个查询更合适
SELECT P.FirstName, P.LastName,COUNT(V.VisitID) as numberOfVisit
FROM VISIT V
JOIN PATIENT P ON P.PatientID = V.PatientID
GROUP BY V.PatientID, P.FirstName, P.LastName
HAVING COUNT(V.VisitID) > 2
答案 3 :(得分:-1)
#!/usr/bin/env python3
from pubnub.pubnub import PubNub, SubscribeListener
from pubnub.pnconfiguration import PNConfiguration
import multiprocessing
import time
def PN_func():
pnconfig = PNConfiguration()
pnconfig.subscribe_key = 'sub-mykey'
pubnub = PubNub(pnconfig)
print('Pubnub multiprocess subscriber initiated...')
class Listener(SubscribeListener):
def message(self, pubnub, data):
print("From Multiprocess function message: ", data.message)
pubnub.add_listener(Listener())
pubnub.subscribe().channels('my_channel').execute()
if __name__ == '__main__':
mp = multiprocessing.Process(target=PN_func)
mp.start()
mp.join()