mysql第七题 查询不会 求解

img

img


第七个哥第八个 查询 有人会的吗 求解诶0000000000000

两个表join,然后按部门聚合,汇总收入,用having 筛出大于9000 的

select max(dept_name) dept_name from 
dept,emp 
where dept.dept1=emp.dept2 
group by dept.dept1 
having sum(incoming)>9000;

你信不信我这查询结果是对的,但你老师可能会判错,因为可能更多人是下面这么写的

select dept.dept1,dept.dept_name, sum(incoming)   incoming
from dept 
join emp on  dept.dept1=emp.dept2 
group by dept.dept1,dept.dept_name 
having sum(incoming)>9000

但是你可以发现,我给的第一个sql只group by 了一个字段,因为部门编号本就是唯一,再按部门名称group by 没有意义了,会拖慢性能,
而且第一个sql是按要求只输出了部门名称,没有输出其他的多余字段。
另外如果在MYSQL8.0以上,我第一个sql里面的max建议换成any_value