会社に部署(departments)と社員(employees)の二つのテーブルがあります。各社員は どこかの部署に属し、在籍状態(status: ACTIVE または INACTIVE)と給与(salary)を 持ちます。 部署ごとに、在籍中(ACTIVE)の社員の平均給与を求める SELECT 文を一つ書いてください。 結果は二つの列で出します。 - department_name : 部署の名前 - avg_salary : その部署の在籍社員の平均給与 solution.sql にクエリを書き、「テスト実行」を押すと本物のデータベースで動いて 結果の表が出ます。
PostgreSQL で、部署ごとに働いている(ACTIVE)人の平均給与を求める SELECT 文を書く 問題です。部署の情報と社員の情報が入った二つのテーブルがデータ付きで用意されていて、 「テスト実行」を押すと書いたクエリが本物のデータベースで動き、結果の表が表示されます。 結果は二つの列で出します。一つは部署の名前、もう一つはその部署の平均値です。
この問題は「表をつなぐ処理と絞り込む処理が重なったとき、何が静かに消えるのか」を 扱います。合計や平均を出すクエリは、ありふれたデータが数行あるだけなら問題なく 見えても、片方が空のとき(働いている人が誰もいない部署など)に答えが変わります。 こうしたクエリを信じる前に、ありふれた部署をいくつか眺めるだけで済ませず、端に 置かれたデータでも一行も抜け落ちないことを実際に動かして自分の目で確かめましょう。