SQL小挑战——第4期

查询所用的表:employ
position_name(职位名称),min_salary(最低薪资,单位元),max_salary(最高薪资,单位元),city(工作城市),educational(学历要求),people(招聘人数),industry(行业)
SQL小挑战——第4期_第1张图片

  • 1、查找不同学历要求的平均最低薪资和平均最高薪资
select educational,round(avg(min_salary)) avg_min_salary,round(avg(max_salary)) avg_max_salary
from employ
group by educational
  • 2、查找每个行业,最高工资和最低工资差距最大的职位名称
select m.industry,m.position_name,max(m.salary_gap) max_salary_gap
from( 
	select industry,position_name,(max_salary-min_salary) salary_gap from employ
	group by industry,position_name
	) m
group by m.industry
  • 3、查找各个城市电商行业的平均薪资水平,并按照薪资高低水平进行排序。(岗位的薪资用最低薪资加最高薪资除以二当成平均薪资计算即可,注意考虑到招聘人数)
select city,sum((min_salary+max_salary)/2*people)/sum(people) avg_salary 
from employ
where industry='互联网/电子商务'
group by city
order by avg_salary desc
  • 4、问答题:说明UNION和UNION ALL的差别

union:对两个相同结构的表作并集,完成后会删除掉重复的记录,因此效率较低
union all :对两个相同结构的表作并集,包括重复的记录

你可能感兴趣的:(SQL)