DataBase - 查詢 SQL 進階

1、查詢每個部門工資最高的員工信息。

方法一:先查目標數據,然後和分組查詢結果進行 in 操作。
SELECT
	e.emp_name, d.dept_name, e.salary
FROM
	emp e inner join dept d ON e.dept_id = d.dept_id
WHERE
	(e.dept_id, e.salary) IN (
		SELECT 
			e.dept_id, max(e.salary) AS salary
		FROM
			emp e inner join dept d ON e.dept_id = d.dept_id
		group by dept_id
	);

方法二:先查目標數據,然後和分組查詢結果進行內連接。

select
	e.emp_name, e.salary, d.dept_name
from
	emp e inner join dept d on e.dept_id = d.dept_id
	inner join (
		select
			dept_id, max(salary) salary
		from emp
		group by dept_id
	) t on e.salary = t.salary and e.dept_id = t.dept_id;

結果

emp_name salary dept_name
李四 6000 研發部
劉六 8000 銷售部

2、當 A 列大於 B 列時選擇 A 列否則選擇 B 列,當 B 列大於 C 列時選擇 B 列否則選擇 C 列。

select (case when a>b then a else b end ) as fei, (case when b>c then b esle c end) as gege
from table_name
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章