mysql子查询习题98

Posted deyo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql子查询习题98相关的知识,希望对你有一定的参考价值。

  1 #1.查询工资最低的员工信息:last name, salary
  2 SELECT
  3     last_name,
  4     salary
  5 FROM
  6     employees
  7 WHERE
  8     salary = (
  9         SELECT
 10             MIN(salary)
 11         FROM
 12             employees
 13     );
 14 
 15 #2.查询平均工资最低的部门信息
 16 SELECT
 17     *
 18 FROM
 19     departments
 20 WHERE
 21     department_id = (
 22         SELECT
 23             department_id
 24         FROM
 25             employees
 26         GROUP BY
 27             department_id
 28         ORDER BY
 29             avg(salary)
 30         LIMIT 1
 31     );
 32 
 33 #3.查询平均工资最低的部门信息和该部门的平均工资
 34 #①各部门的平均工资
 35 SELECT
 36     avg(salary),
 37     department_id
 38 FROM
 39     employees
 40 GROUP BY
 41     department_id #②求出最低平均工资的部门编号
 42     SELECT
 43         avg(salary),
 44         department_id
 45     FROM
 46         employees
 47     GROUP BY
 48         department_id
 49     ORDER BY
 50         avg(salary)
 51     LIMIT 1;
 52 
 53 #③查询部门信息
 54 SELECT
 55     d.*, ag
 56 FROM
 57     departments d
 58 JOIN (
 59     SELECT
 60         avg(salary),
 61         department_id
 62     FROM
 63         employees
 64     GROUP BY
 65         department_id
 66     ORDER BY
 67         avg(salary)
 68     LIMIT 1
 69 ) ag_dep ON d.department_id = ag_dep.department_id #4.查询平均工资最高的job信息
 70 SELECT
 71     avg(salary)
 72 FROM
 73     employees
 74 GROUP BY
 75     job_id
 76 ORDER BY
 77     avg(salary) DESC
 78 LIMIT 1 ②查询job信息 SELECT
 79     *
 80 FROM
 81     jobs
 82 WHERE
 83     job_id = (
 84         SELECT
 85             job_id
 86         FROM
 87             employees
 88         GROUP BY
 89             job_id
 90         ORDER BY
 91             avg(salary) DESC
 92         LIMIT 1
 93     );
 94 
 95 #5.查询平均工资高于公司平均工资的部门有哪些?
 96 SELECT
 97     avg(salary),
 98     department_id
 99 FROM
100     employees
101 GROUP BY
102     department_id;
103 
104 
105 HAVING
106     avg(salary) > (
107         SELECT
108             avg(salary)
109         FROM
110             employees
111     );
112 
113 #6.查询出公司中所有 manager的详细信息
114 SELECT
115     *
116 FROM
117     employees
118 WHERE
119     employee_id IN (
120         SELECT DISTINCT
121             manager_id
122         FROM
123             employees
124     );
125 
126 #7.各个部门中最高工资中最低的那个部门的最低工资是多少
127 SELECT
128     min(salary),
129     department_id
130 FROM
131     employees
132 WHERE
133     department_id = (
134         SELECT
135             department_id
136         FROM
137             employees
138         GROUP BY
139             department_id
140         ORDER BY
141             max(salary)
142         LIMIT 1
143     );
144 
145 #8.查询平均工资最高的部门的 manager的详细信息:last_name, department id, email
146 SELECT
147     last_name,
148     d.department_id,
149     email,
150     salary
151 FROM
152     employees e
153 JOIN departments d ON d.manager_id = e.manager_id
154 WHERE
155     d.department_id = (
156         SELECT
157             department_id
158         FROM
159             employees
160         GROUP BY
161             department_id
162         ORDER BY
163             avg(salary) DESC
164         LIMIT 1
165     );

 

以上是关于mysql子查询习题98的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 练习题

练习题|MySQL

十一子查询详解

十一子查询详解

Mysql查询详解(条件查询、子查询、模糊查询、连接查询。。。)

四十道MYSQL复杂查询练习题(难度较低)