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 );
本文来自博客园,作者:自律即自由-,转载请注明原文链接:https://www.cnblogs.com/deyo/p/13287197.html