SELECT last_name,salary
FROM employees
WHERE salary =(SELECTMIN(salary)FROM employees
);
查询平均工资最低的部门信息
#方法一SELECT*FROM departments
WHERE department_id=(SELECT department_id #找到idFROM(SELECT department_id,AVG(salary)平均工资
FROM employees
GROUPBY department_id
) 平均工资表
WHERE 平均工资=(SELECTMIN(平均工资) 最低平均工资
FROM(SELECT department_id,AVG(salary)平均工资
FROM employees
GROUPBY department_id
) 平均工资表
))#方式二SELECT*FROM departments
WHERE department_id =(SELECT department_id
FROM employees
GROUPBY department_id
ORDERBYAVG(salary)LIMIT1)
查询平均工资最低的部门信息和该部门的平均工资
#方式一:连接查询SELECT d.*, ag_dep.ag
FROM departments d
INNERJOIN(SELECTAVG(salary) ag,department_id
FROM employees
GROUPBY department_id
ORDERBY ag
LIMIT1) ag_dep
ON d.department_id = ag_dep.department_id
#方式二:子查询SELECT*,(SELECTAVG(salary)FROM employees
GROUPBY department_id
ORDERBYAVG(salary)LIMIT1)ag
FROM departments
WHERE department_id =(SELECT department_id
FROM employees
GROUPBY department_id
ORDERBYAVG(salary)LIMIT1)
查询平均工资最高的 job 信息
#4. 查询平均工资最高的 job 信息SELECT*FROM jobs
WHERE job_id =(SELECT job_id
FROM employees
GROUPBY job_id
ORDERBYAVG(salary)DESCLIMIT1)
查询平均工资高于公司平均工资的部门有哪些?
SELECT department_name
FROM departments
WHERE department_id IN(SELECT department_id
FROM employees
GROUPBY department_id
HAVINGAVG(salary)>(SELECTAVG(salary)FROM employees
))
查询出公司中所有 manager 的详细信息.
SELECT*FROM employees e
WHERE e.employee_id =ANY(SELECTDISTINCT manager_id
FROM employees
)
各个部门中 最高工资中最低的那个部门的 最低工资是多少
SELECTMIN(salary)FROM employees
WHERE department_id =(SELECT department_id
FROM employees
GROUPBY department_id
ORDERBYMAX(salary)LIMIT1)
#方式一:SELECT last_name,department_id,email,salary
FROM employees
WHERE employee_id =(SELECT manager_id
FROM departments
WHERE department_id =(SELECT department_id
FROM employees
GROUPBY department_id
ORDERBYAVG(salary)DESCLIMIT1))#方式二;SELECT last_name,e.department_id,email,salary
FROM employees e
INNERJOIN departments d
ON e.`employee_id`= d.`manager_id`WHERE e.department_id =(SELECT department_id
FROM employees
GROUPBY department_id
ORDERBYAVG(salary)DESCLIMIT1)
SELECTAVG(score),MAX(score),studentno
FROM result
GROUPBY studentno;
查询姓张的每个学生的最低分大于60的学号、姓名
SELECT s.studentno,s.`studentname`,MIN(score)FROM student s
JOIN result r
ON s.`studentno`=r.`studentno`WHERE s.`studentname`LIKE'张%'GROUPBY s.`studentno`HAVINGMIN(score)>60;
查询专业生日在“1988-1-1”后的学生姓名、专业名称
SELECT m.`majorname`,s.`studentname`FROM student s
JOIN major m
ON m.`majorid`=s.`majorid`WHERE DATEDIFF(borndate,'1988-1-1')>0GROUPBY m.`majorid`;
查询每个专业的男生人数和女生人数分别是多少
SELECTCOUNT(*),sex,majorid
FROM student
GROUPBY sex,majorid;
查询专业和张翠山一样的学生的最低分
#①查询张翠山的专业编号SELECT majorid
FROM student
WHERE studentname ='张翠山'#②查询编号=①的所有学生编号SELECT studentno
FROM student
WHERE majorid=(SELECT majorid
FROM student
WHERE studentname ='张翠山')#②查询最低分SELECTMIN(score)FROM result
WHERE studentno IN(SELECT studentno
FROM student
WHERE majorid=(SELECT majorid
FROM student
WHERE studentname ='张翠山'))
查询大于60分的学生的姓名、密码、专业名
SELECT studentname,loginpwd,majorname
FROM student s
JOIN major m ON s.majorid= m.majorid
JOIN result r ON s.studentno=r.studentno
WHERE r.score>60;
SELECT studentname,score,majorname
FROM student s
JOIN major m ON s.majorid= m.majorid
LEFTJOIN result r ON s.studentno=r.studentno
查询哪个专业没有学生,分别用左连接和右连接实现
#左SELECT m.`majorid`,m.`majorname`,s.`studentno`FROM major m
LEFTJOIN student s ON m.`majorid`= s.`majorid`WHERE s.`studentno`ISNULL;#右SELECT m.`majorid`,m.`majorname`,s.`studentno`FROM student s
RIGHTJOIN major m ON m.`majorid`= s.`majorid`WHERE s.`studentno`ISNULL;
查询没有成绩的学生人数
SELECTCOUNT(*)FROM student s
LEFTJOIN result r ON s.`studentno`= r.`studentno`WHERE r.`id`ISNULL