Я пытаюсь получить идентификатор врача, который выполнил макс. количество медицинских Внимания:Найти врача с макс. количество медицинских осмотров
В таблице я работаю имеет следующие столбцы:
Adm_ID //Id of the Attention
Med_ID //Medical Procedure carried out
Doc_ID //ID Doctor
Это моя попытка:
Сначала я подсчитать количество внимания врач имеет:
SELECT Doc_ID, COUNT(*) AS Attentions
FROM Adm_Med
GROUP BY Doc_ID
Тогда я найти максимум между ними
SELECT MAX(Attentions)
FROM
(
SELECT Doc_ID, COUNT(*) AS Attentions
FROM Adm_Med
GROUP BY Doc_ID
) temp
И теперь у меня проблемы. Было бы хорошо, если я могу получить doc_id и Внимания одновременно, но когда-то запрос, как
SELECT MAX(Attentions), Doc_ID
FROM
(
SELECT Doc_ID, COUNT(*) AS Attentions
FROM Adm_Med
GROUP BY Doc_ID
) temp
Я получаю сообщение об ошибке (колонка «temp.Doc_ID» недопустим в списке выбора, поскольку он не содержится либо в агрегатной функции, либо в предложении GROUP BY).
Так вместо этого я пытаюсь запросить сокровенную таблицу с колонками doc_id и Внимания снова и сопоставляя Внимания с Max (Внимания):
SELECT Doc_ID
FROM
(
SELECT Doc_ID, COUNT(*) AS Attentions
FROM Adm_Med
GROUP BY Doc_ID
) t1,
(
SELECT MAX(Attentions) AS Maxattentions,
FROM
(
SELECT Doc_ID, COUNT(*) AS Attentions
FROM Adm_Med
GROUP BY Doc_ID
) temp
)t2
WHERE t1.Attentions=t2.Maxattentions
Который (некрасиво) и снова выдает ошибку.
Я понятия не имею, как это получить.
Спасибо. Теперь я узнал что-то новое (: – Jazz