部署内での給与順位をつける
上級
ウィンドウ関数
部署内での給与順位をつける
ウィンドウ関数やサブクエリなど、複雑なSQL構文をマスターする上級問題です。
問題文
salaries・employees・departmentsを結合し、部署内でのbase_salary降順のRANK()を付けてください。
結合のヒント
- employeesテーブル(エイリアス: e)との結合条件: s.employee_id = e.id(salaries.employee_id = employees.id)
- departmentsテーブル(エイリアス: d)との結合条件: e.department_id = d.id(employees.department_id = departments.id)
取得列: d.name AS dept, e.name AS emp_name, s.base_salary, RANK() OVER (PARTITION BY e.department_id ORDER BY s.base_salary DESC) AS dept_rank
この問題で学べること
- ウィンドウ関数 の構文・考え方
- 上級レベルのSQLクエリの書き方
- ブラウザ上でSQLを実行して即座に結果を確認する練習
使用テーブル
departmentsemployeessalaries難易度・対象者
難易度上級
カテゴリウィンドウ関数
対象者ウィンドウ関数やサブクエリなど、複雑なSQL構文をマスターする上級問題です。