Interview-Question
面試SQL問題
給定一個表’員工'
employee_id | salary | department_id -------------+--------+---------------
僅使用 SQL 查找從一個部門到另一個部門的員工調動的所有變體,因此“出發”和“到達”部門的平均工資都增長了。
PS我在一次採訪中被問到這個問題,從來沒有給出答案,Google也幫不上什麼忙。
因此,您正在尋找收入低於目前部門平均水平但高於預期新部門平均水平的員工。
獲得所有滿足此要求的員工調動的一種可能方法是
WITH departments AS (SELECT AVG(salary) AS AvgSalary, department_id FROM employees GROUP BY department_id) SELECT e.employee_id, dept_current.department_id AS current_department_id, dept_new.department_id AS new_department_id FROM employees e JOIN departments dept_current ON e.department_id = dept_current.department_id AND dept_current.AvgSalary > e.salary JOIN departments dept_new ON dept_new.AvgSalary < e.salary