头条面试题(MYSQL——连表查询&having用法)

题目一:

部门表(员工姓名,部门名称,工资)

department(personnel,name,salary)

等级表(工资等级,等级下限,等级上限)

grade(level,lower,upper)

问题1:

求平均工资大于5000的部门名称和部门的平均工资

注释:主要考察的是having用法,https://www.runoob.com/sql/sql-having.html

having:where无法与聚合函数一起使用,having可以筛选分组后的各组数据(即可以筛选聚合函数的值)

select name, avg(salary) from department group by name having  avg(salary) > 5000;

问题2:

求每个员工名称,工资,工资等级

注释:主要考察的是多表连接,https://www.runoob.com/mysql/mysql-join.html

内连接:from A inner join B on A.a = B.a   (获取2张表字段匹配关系的记录)

左连接:from A left join B on A.a = B.a (获取左边所有的记录,即使右表没有相匹配的)

右连接:from A right join B on A.a = B.a (获取右边所有的记录,即使左表没有相匹配的)

select a.personnel, a.salary, b.level from department a left join grade b on a.salary >= b.lower and a.salary < = b.upper;

 

题目二:

stu表(name,subject,score)

小明 数学 91

小明 语文 80

小王 数学 92

小王 语文 92

问题1:

找到所有科目的分数都大于90分的同学,打印出姓名和平均分 (小王,92)

注释:以姓名分组,在分组数据的基础上过滤掉包含小于90分的姓名

主要考察的是having用法,https://www.runoob.com/sql/sql-having.html

having:where无法与聚合函数一起使用,having可以筛选分组后的各组数据(即可以筛选聚合函数的值)

min():返回指定列的最小值

select name, avg(score) from stu group by name having min(score) > 90;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值