我正在尝试进行查询,但我不知道该怎么做。
这些是表格:
Table Hospital Table Doctor Table Work
Hid Country ic Hid ic
1 England 1 1 1
2 Spain 2 1 2
3 France 3 1 3
4 England 4 2 4
5 China 5 4 5
我想要的结果:
Country Average of Doctors Working on that Hospitals of that Country
England 2 (the doctor with ic 1, 2, 3, and 4/number of hid)
Spain 1
France 0
China 0
我试过了:
SELECT DISTINCT H.country, AVG(D.ic)
FROM Hospital H, Doctor D
WHERE H.hid IN
( SELECT W.hid
FROM Work W
WHERE W.ic IN
( SELECT COUNT(D.ic)
FROM D Doctor ....
)
)
GROUP BY(H.country);
答案 0 :(得分:1)
试试这个
select H.Country, count(W.ic) / count(distinct H.hid) as [Average]
from Hospital as H
left outer join Work as W on W.Hid = H.Hid
group by H.Country
答案 1 :(得分:0)
首先获得每家医院的医生数量,然后获得平均值:
select country, avg(docs) as avg_doctors_working
from (
select country, h.hid, count(*) as docs,
from hospital h
left join work w on w.hid = h.hid
group by 1, 2) x
group by 1;