1. 程式人生 > 實用技巧 >mysql子查詢習題98

mysql子查詢習題98

 #1.查詢工資最低的員工資訊:last name, salary
SELECT
last_name,
salary
FROM
employees
WHERE
salary = (
SELECT
MIN(salary)
FROM
employees
); #2.查詢平均工資最低的部門資訊
SELECT
*
FROM
departments
WHERE
department_id = (
SELECT
department_id
FROM
employees
GROUP BY
department_id
ORDER BY
avg(salary)
LIMIT 1
); #3.查詢平均工資最低的部門資訊和該部門的平均工資
#①各部門的平均工資
SELECT
avg(salary),
department_id
FROM
employees
GROUP BY
department_id #②求出最低平均工資的部門編號
SELECT
avg(salary),
department_id
FROM
employees
GROUP BY
department_id
ORDER BY
avg(salary)
LIMIT 1; #③查詢部門資訊
SELECT
d.*, ag
FROM
departments d
JOIN (
SELECT
avg(salary),
department_id
FROM
employees
GROUP BY
department_id
ORDER BY
avg(salary)
LIMIT 1
) ag_dep ON d.department_id = ag_dep.department_id #4.查詢平均工資最高的job資訊
SELECT
avg(salary)
FROM
employees
GROUP BY
job_id
ORDER BY
avg(salary) DESC
LIMIT 1 ②查詢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
avg(salary),
department_id
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
WHERE
department_id = (
SELECT
department_id
FROM
employees
GROUP BY
department_id
ORDER BY
max(salary)
LIMIT 1
); #8.查詢平均工資最高的部門的 manager的詳細資訊:last_name, department id, email
SELECT
last_name,
d.department_id,
email,
salary
FROM
employees e
JOIN departments d ON d.manager_id = e.manager_id
WHERE
d.department_id = (
SELECT
department_id
FROM
employees
GROUP BY
department_id
ORDER BY
avg(salary) DESC
LIMIT 1
);