面試遇到乙個題,如下所示:
給出每個部門員工薪水最高的員工資訊emp_no, dept_no, salary
表1:dept_emp
emp_no
員工編號
dept_no
部門編號
from_date
to_date
表2:salaries
emp_no
員工編號
salary
薪水from_date
to_date
剛開始寫的是錯誤的答案,面試官也寫錯了,哈哈哈,感覺mysql水還是很深的,需要耐心去學習,首先給出錯誤答案:
首先自己建了表,並插入資料
dept_emp表
salaries表
結果如下:
發現,部門2的薪水並非最高的,原因在於分組group by : 預設返回結果第一條,而max 只作用於列,不會影響行資料,所以才會出現此現象,因此我們先聯表排序查詢,再分組取
select
t.emp_no,
t.dept_no,
t.salary
from
( select
d.dept_no,
s.emp_no,
s.salary
from
dept_emp d
left join salaries s on d.emp_no = s.emp_no
order by
s.salary desc
) tgroup by
t.dept_no;
結果可以看出,正是我們想要的結果
乙個SQL題目,求各部門中薪水最高的員工的名稱
題 員工表有員工名稱,部門id,和薪水,通過sql求出每個部門最高薪水的員工的名稱 同一部門可能有兩個或兩個以上員工的薪水一樣且最高.sqlserver2005中的實現如下 select 員工名稱,部門id,薪水 from 員工,select 部門id as departmentid,max 薪水 ...
查詢人數最多的部門及各部門男女人數
首先是建表語句 spool employee.log prompt prompt creating table employee prompt prompt create table jcxt.employee id varchar2 20 name varchar2 20 varchar2 20 ...
外企各部門英文名稱
總公司 head office 分公司 branch office 營業部 business office 人事部 personnel department 人力資源部 human resources department 總務部 general affairs department 財務部 gen...