我正试图从Access 2010数据库中获得每天平均不同的计数,而我所做的一切似乎都无法正常工作。我尝试过使用子查询,但我无法弄清楚如何将其链接到主要查询。每个办公室访问的表都有一行,如下所示:
patient_id, visit_year, visit_date, dow, doctor_id
12345, 2012, 3/5/12, Monday, 987
12567, 2012, 3/5/12, Monday, 986
12789, 2012, 3/6/12, Tuesday, 987
我需要获得平均每周一天的医生数量,其中年份= 2012年。在我看来,这应该有效,但事实并非如此: 选择dow,AVG(COUNT(DISTINCT(doctor_id)))AS AvgDocsInOffice 从访问 visit_year = 2012 GROUP BY dow
我正在尝试这个输出:
DOW, AvgDocsInOffice
Monday, 5
Tuesday, 6
Wednesday, 4
有什么想法吗?不幸的是,我在Access中坚持这样做。
答案 0 :(得分:0)
SELECT dow, AVG(CntDocsInOffice) AS AvgDocsInOffice FROM
(SELECT dow, visit_date, COUNT(*) AS CntDocsInOffice FROM
(SELECT DISTINCT dow, visit_date, doctor_id FROM
visits
WHERE visit_year = 2012)
GROUP BY dow, visit_date)
GROUP BY dow;
最内在的SELECT每天选择独特的医生 下一个外部SELECT计算每天唯一医生的数量 最外面的SELECT最终计算每周的平均医生数。
答案 1 :(得分:0)
怎么样:
SELECT q.dow,
Avg(q.countofdoctor_id) AS avgofcountofdoctor_id
FROM (SELECT v.visit_date,
v.dow,
COUNT(v.doctor_id) AS countofdoctor_id
FROM (SELECT DISTINCT visit_date,
dow,
doctor_id
FROM visits
WHERE visit_year = 2012) AS v
GROUP BY v.visit_date,
v.dow) AS q
GROUP BY q.dow;