MySQL數據庫--------子查詢練習題

#1、查詢工資最低的員工信息:last_name,salary

SELECT last_name,salary
FROM employees
WHERE salary = (
	SELECT MIN(salary)
	FROM employees
);


#2、查詢平均工資最低的部門信息

#方式一
SELECT d.*
FROM employees e
INNER  JOIN departments d
ON e.`department_id`=d.department_id
GROUP BY department_id
HAVING  AVG(salary) = (
	SELECT MIN(工資)
	FROM (
		SELECT AVG(salary) 工資,department_id
		FROM employees
		GROUP BY department_id
	 ) 新表
);

#方式二

SELECT *
FROM departments
WHERE department_id =(
	SELECT department_id
	FROM employees
	GROUP BY department_id
	ORDER BY AVG(salary)
	LIMIT 1
);


#3、查詢平均工資最低的部門信息和該部門的平均工資

SELECT d.*,AVG(salary)
FROM employees e
INNER JOIN departments d
ON e.`department_id`=d.`department_id`
GROUP BY e.department_id
HAVING  AVG(salary) = (
	SELECT MIN(工資)
	FROM (
		SELECT AVG(salary) 工資,department_id
		FROM employees
		GROUP BY department_id
	 ) 新表
);

#4、查詢平均工資最高的job信息

SELECT *
FROM jobs
WHERE job_id =(
	SELECT job_id
	FROM employees
	GROUP BY job_id
	ORDER BY AVG(salary) DESC 
	LIMIT 1
);


#5、查詢平均工資高於公司平均工資的部門有哪些?

SELECT department_id,AVG(salary)
FROM employees
GROUP BY department_id
HAVING AVG(salary) > (
	SELECT AVG(salary)
	FROM employees
);

#6、查詢公司中所有manager的詳細信息

SELECT *
FROM employees 
WHERE employee_id IN (
	SELECT DISTINCT manager_id
	FROM employees 
);

#7、各個部門中最高工資中最低的那個部門的最低工資是多少?

SELECT MIN(salary),department_id
FROM employees
GROUP BY department_id
HAVING department_id =(
	SELECT department_id 部門編號
	FROM employees
	GROUP BY department_id
	ORDER BY MAX(salary)
	LIMIT 1

);


#8、查詢平均工資最高的部門的manager的詳細信息:last_name,department_id,email,salary

SELECT last_name,department_id,email,salary
FROM employees
GROUP BY department_id
HAVING AVG(salary)=(
	SELECT MAX(工資) 
	FROM (
		SELECT AVG(salary) 工資,department_id  編號
		FROM employees
		GROUP BY department_id

	) 新表
);



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章