Department (dNumber, dName)
Employee (SSN, eName, salary, /dNumber/)
Project (pNumber, pName, pLocation)
WorksOn (/SSN/, /pNumber/, hours)
これらは私が処理しているテーブルです。私は、5人以上の従業員が働いている部門番号と名前をすべて列挙し、給与が4万人を超える従業員の数を数えたいと思います。サブクエリを使って練習したい。サブクエリを使用したSQLクエリ
SELECT T.dNumber, T.dName, COUNT(T.SSN)
FROM
(
SELECT d.dNumber, d.dName, e.SSN
FROM Department d, Employee e
WHERE e.salary > 40000 AND d.dNumber = e.dNo
) as T
GROUP BY dNumber, dName
HAVING COUNT(T.SSN) > 5;
しかし、それは見て、冗長に感じている:ここで
は、私が書いたものです。あたかもサブクエリを使用する必要はほとんどありません。何か案は?
ありがとうございました!
mysqlの<> SQLサーバ – FLICKER
あなたクエリは企業のみを返し、5人以上の従業員が40k +を取得します。しかし、あなたの説明によれば、5人以上の従業員を持つ企業を展示し、40k +を作った人を数える必要があります。どちらが正しいか? – Uriil
@Uriil私の英語は悪いかもしれませんが、同じことを言っている気がします。 –