SELECT
dnum
, SUM(IF(salary>20000, 1, 0)) AS Employee
FROM project
INNER JOIN works_on
ON pno=pnumber
INNER JOIN employee
ON dno=dnum
GROUP BY dnum HAVING COUNT(*) >2
まず、各部門に 2 人以上の従業員がいるかどうかを判断し、真の場合は部門番号と従業員数を取得します。ただし、20,000以上を稼いだ人に限られます。
私が行った方法では、部門の1つでは正しい結果が表示されますが、他の部門では完全に間違ったカウントが表示されます. たとえば、部門 4 の場合は 18 と表示されますが、正しい数は 6 だけです。