0
私は最大を行った医者のIDを取得しようとしています。医療注目の数:これは私の試み最大の医者を見つけてください。医学的注意の数
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と注目を得ることができる場合、それはいいだろうが、私はそれが含まれていないため、エラー(列「temp.Doc_ID」は、選択リストに無効で取得するとき
SELECT MAX(Attentions), Doc_ID
FROM
(
SELECT Doc_ID, COUNT(*) AS Attentions
FROM Adm_Med
GROUP BY Doc_ID
) temp
ようなクエリ何か集計関数または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
(醜い)で、再びエラーを与えます。
私はそれをどうやって得るのか分かりません。
感謝を使いたいがある場合には
TOP 1
とOrder By
を使用することによって単純化することができます。今私は何か新しいことを学んだ(: – Jazz