牛客网SQL中等难度

本文介绍了如何使用SQL进行多表联查以获取员工的平均薪资,以及如何通过左连接查询获取员工的姓名和部门名称。同时,展示了两种创建新表`actor_name`的方法,强调了SQL在数据统计和数据整理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL210 统计出当前各个title类型对应的员工当前薪水对应的平均工资

select t.title,avg(s.salary) average
from titles t join salaries s
on t.emp_no = s.emp_no
group by t.title
order by average asc

解释:观察查询的两列数据,分别在两个表中,多表联查思路。

思路是比较简单的,多表联查使用inner join ..on 或者join ..on,因为工资要平均,所以需要分组进行求平均数,并且题目要求对平均薪资进行排序,注意点是 join..on的on的使用,不是直接接的where条件进行查询的

SQL213 查找所有员工的last_name和first_name以及对应的dept_name

select e.last_name,e.first_name,dept_name
from employees e left join dept_emp de on e.emp_no = de.emp_no
left join departments d on de.dept_no = d.dept_no

解释:首先分析三个表之间的关系,employees与dept_emp是使用emp_no外键进行连接的,而departments与dept_emp是使用dept_no外键进行连接的,而查询的数据在employees和departments中所以需要两次左连接查询,因为左连接查询会影响右表的数据

SQL230 创建一个actor_name表

 方法一:

create table if not exists actor_name (

    first_name varchar(45) not null,

    last_name varchar(45) not null

);

insert into actor_name select first_name,last_name from actor;

方法二:

create table if not exists actor_name as
                                       (select first_name ,last_name  from actor) 

 都是IT小白,交流群不可少,相互学习,相互交流感悟,可能会给你一些启发。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许舒雅的宝贝

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值