Среднее отдельного числа по дням в Access - PullRequest
1 голос
/ 09 марта 2012

Я пытаюсь получить среднее значение отдельного подсчета в день из базы данных 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. В моей голове это должно работать, но это не так: Выберите Доу, AVG (COUNT (DISTINCT (doctor_id)))) AS AvgDocsInOffice От посещения ГДЕ посещение_год = 2012 GROUP BY Доу

Я пытаюсь получить такой вывод:

    DOW, AvgDocsInOffice
    Monday, 5
    Tuesday, 6
    Wednesday, 4

Есть идеи? К сожалению, я застрял, делая это в Access.

Ответы [ 2 ]

0 голосов
/ 09 марта 2012

Как насчет:

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; 
0 голосов
/ 09 марта 2012
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, наконец, вычисляет среднее количество врачей в день недели.

...