私はこれをしばらく解決しようとしています。ここで多くの興味深いものを見つけましたが、要求された方法で解決できませんでした。SQL - Getting MAX AVG
は、私は2つのテーブルを持っている:
PROFESSOR (ID, NAME, DEPARTMENT_ID and SALARY) and
DEPARTMENT (ID, NAME).
私は最高の平均給与を持っている部門名を表示するクエリを記述する必要があります。また、複数の部門が平均SALARYが最も高い場合は、すべての順序を任意の順序でリストする必要があります。
私はとても多くのことを試みましたが、最終的に私はモンスターを作りました。私はHAVINGを使ってみましたが、私のやり方ではうまくいきませんでした。道に迷いました。問題は、関数を集約するために使用する必要があることです。
SELECT b.nam, b.average
FROM (SELECT DEPARTMENT.NAME AS nam, AVG(PROFESSOR.SALARY) AS average
FROM PROFESSOR JOIN DEPARTMENT ON (PROFESSOR.DEPARTMENT_ID =
DEPARTMENT.ID)
GROUP BY DEPARTMENT.NAME) AS b
GROUP BY b.nam, b.average
ORDER BY b.average DESC
しかし、このクエリでは、すべての部門が平均であり、最大ではありません。
誰かが私を助けて簡単な方法で説明できたら、本当に感謝します。 ありがとう!