私は SQL や MySQL の完全な初心者ではありませんが、まだ学ぶべきことがかなりあることに気付きました。何度も試し、読んで、検索した後、私はこれについて頭を悩ませることができません。何かご指摘がありましたら、よろしくお願いします。
実際のデータと表を次のように簡略化しました。
スタッフと仕事の 2 つのテーブルが関連しています。さまざまなプロジェクトのスタッフに関するデータが含まれています。
スタッフ:
ID Name Unit
1 Smith Chicago
2 Clarke London
3 Hess Chicago
仕事:
StaffID ProjectID
1 10
2 10
3 10
1 20
2 30
3 40
1 50
3 50
ゴール:
シカゴのスタッフがいるすべてのプロジェクトを、そのプロジェクトのすべてのスタッフの数とともにグループ化します。
期待される結果:
Project Staff count
10 3
20 1
40 1
50 2
プロジェクト 30 は、そのメンバーがシカゴ出身ではないため、リストされていません。
以下の私のクエリは明らかに間違っています。プロジェクト スタッフ全体ではなく、シカゴ出身のプロジェクト メンバーのみがカウントされます。
SELECT
work.projectID as Project, COUNT(*) as "Staff count"
FROM
staff
JOIN
work ON staff.ID=work.staffID
WHERE
unit="Chicago"
GROUP BY
work.projectID;