首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
jiang_dr
获赞
221
粉丝
1
关注
4
看过 TA
4
男
湖南涉外经济学院
2021
Java
IP属地:湖南
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑jiang_dr吗?
发布(80)
评论
刷题
jiang_dr
关注TA,不错过内容更新
关注
2021-10-18 10:50
湖南涉外经济学院 Java
题解 | #使用子查询的方式找出属于Action分类的所有电影对应的title,description#
思路:嵌套子查询,通过查询出 name = 'Action' 的 category_id,然后通过 category_id 查询出 film_id,最后查出题目所需字段信息。 注意:因为 name = 'Action' 的结果可能有多个,所以在所有的 where 条件中都需要使用 in 关键字来查询 select title, description from film where film_id in ( select film_id from film_category where category_id in ( select category_id from catego...
SQL练习
0
点赞
评论
收藏
分享
2021-10-18 10:20
湖南涉外经济学院 Java
题解 | #使用join查询方式找出没有分类的电影id以及名称#
思路:有两种解法可以解决该问题 使用 inner join 将三个表连接,查询出共有的电影id,在通过共有电影id与 film 表中的 film_id 做 not in 即可 使用 left join 依次连接 film、film_category、category三个表,最后通过条件判断 category_id is null,取出所需的信息 方法一 select film_id, title from film where film_id not in ( select f.film_id from film f, film_category fc, category c wh...
SQL练习
0
点赞
评论
收藏
分享
2021-10-15 11:36
已编辑
湖南涉外经济学院 Java
题解 | #汇总各个部门当前员工的title类型的分配数目#
这题主要还是考察表的连接,以及 group by 的使用。 先贴一下结果 select dp.dept_no, dp.dept_name, t.title, count(t.title) from dept_emp de inner join titles t on de.emp_no = t.emp_no and de.to_date = '9999-01-01' and t.to_date = '9999-01-01' inner join departments dp on dp.dept_no = de.dept_no group by dp.dept_no, t.title orde...
SQL练习
0
点赞
评论
收藏
分享
2021-10-12 11:50
已编辑
湖南涉外经济学院 Java
题解 | #获取员工其当前的薪水比其manager当前薪水还高的相关信息#
思路:做两个表,一个用来存员工信息及薪水,另一个用来存manager信息及薪水,然后通过where筛选出薪水大于manager的员工,查询出对应信息 select sde.emp_no as emp_no, sdm.emp_no as manager_no, sde.salary as emp_salary, sdm.salary as manager_salary from (select s.salary, s.emp_no, de.dept_no from dept_emp de join salaries s on de.emp_no = s.emp_no and s.to_date ...
SQL练习
0
点赞
评论
收藏
分享
2021-10-29 10:52
已编辑
湖南涉外经济学院 Java
题解 | #获取所有非manager员工当前的薪水情况#
本题有两种解法 方法一:inner join 思路:本题的重点在于获取非manager员工,因此我们使用inner join将employees,dept_emp,salaries表进行连接,在 where 条件中加入 e.emp_no not in (select emp_no from dept_manager where to_date = '9999-01-01') 来进行判断,由此来排除掉是manager的员工。 select de.dept_no, e.emp_no, s.salary from employees e, dept_emp de, salaries s where...
SQL练习
0
点赞
评论
收藏
分享
2021-10-11 11:48
已编辑
湖南涉外经济学院 Java
题解 | #统计各个部门的工资记录数#
思路:这题可以有三种解法。 第一二种类似,区别在于第一种方法是使用left join,第二种使用 inner join,其实区别并不大,酌情使用即可 -- 方法一: select dp.dept_no, dp.dept_name, count(s.salary) as sum from salaries s left join dept_emp d on s.emp_no = d.emp_no left join departments dp on d.dept_no = dp.dept_no group by dp.dept_no order by dp.dept_no -- 方法二: ...
SQL练习
0
点赞
评论
收藏
分享
2021-10-11 10:09
已编辑
湖南涉外经济学院 Java
题解 | #查找在职员工自入职以来的薪水涨幅情况#
思路:我们使用两个表,分别保存之前的工资和当前的工资 方法一:使用两次left join 和 一次 inner join 之前的工资的条件为:salaries.from_date = employees.hire_date 当前的工资的条件为:salaries.to_date = '9999-01-01' 获取这两个表之后,就可以通过 inner join 来进行计算了。 select sCurrent.emp_no, (sCurrent.salary - sStart.salary) as growth from (select s.emp_no, s.salary from employ...
SQL练习
0
点赞
评论
收藏
分享
2021-10-29 10:51
已编辑
湖南涉外经济学院 Java
题解 | #查找所有员工的last_name和first_name以及对应的dept_name#
思路:这是一个典型的多表连接,值得注意的是未分配部门员工也需要展示,这就要考虑使用什么连接方式。这里使用两次左连接来实现。 完整代码: select e.last_name, e.first_name, d.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
SQL练习
0
点赞
评论
收藏
分享
2021-10-29 10:50
已编辑
湖南涉外经济学院 Java
题解 | #获取当前薪水第二多的员工的emp_no以及其对应的薪水salary#
思路: 我们首先通过 max() 求出第一大的薪水。 然后通过 < 去除最大的,且通过 max() 求出第二大的。 表连接,取 salary = 第二大的薪水,及对应的字段值。 完整代码: select e.emp_no, s.salary, e.last_name, e.first_name from employees e inner join salaries s on e.emp_no = s.emp_no where s.salary = (select max(salary) from salaries where salary < (sele...
SQL练习
0
点赞
评论
收藏
分享
2021-10-29 10:49
已编辑
湖南涉外经济学院 Java
题解 | #获取当前薪水第二多的员工的emp_no以及其对应的薪水salary#
思路:关于这种获取第几多的XXX问题,一般可以直接使用 limit 来进行求解。 这里需要注意的是: 需要进行去重,举个例子:可能会存在两个相同的最高工资,如果不进行去重,那么使用 limit 将取不到第二大的工资 去重的方式有两种,第一种是 distinct 第二种是 group by salary。使用 group by 的方式效率更高 完整代码: select emp_no, salary from salaries where to_date = '9999-01-01' and salary = (select salary from salaries group by sala...
SQL练习
0
点赞
评论
收藏
分享
2021-10-29 10:48
已编辑
湖南涉外经济学院 Java
题解 | #统计出当前各个title类型对应的员工当前薪水对应的平均工资#
思路:题目所表达的意思其实就是两表连接后,通过分组求title和avg(s.salary)。 这里我们需要注意的是: 在经过 group by 之后,select 中只能包含分组的字段以及聚合函数。 有很多人说不明白为什么要使用 to_date ,其实这个只是为了保证是当前的员工。 完整代码: select t.title, avg(s.salary) from titles t inner join salaries s on t.emp_no = s.emp_no where t.to_date = '9999-01-01' and s.to_date = '9999-01-01' g...
SQL练习
0
点赞
评论
收藏
分享
2021-10-09 09:16
湖南涉外经济学院 Java
题解 | #查找employees表emp_no与last_name的员工信息#
位运算 select * from employees where emp_no & 1 = 1 and last_name != 'Mary' order by hire_date desc 思路:按照给定要求作答即可 其中,使用位运算是效率最高的,当然也可以使用取模 在这补充一下位运算: 程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运...
SQL练习
0
点赞
评论
收藏
分享
2021-10-29 10:47
已编辑
湖南涉外经济学院 Java
题解 | #获取所有的员工和员工对应的经理,如果员工本身是经理的话则不显示#
思路:这个题主要搞清两个点 员工对应的经理 使用left join将两表以dept_no相连,这就形成了dept_emp.emp_no 和 dept_manager.emp_no的对应关系 员工本身是经理的话则不显示 我们在第一步已经得到了员工和经理的对应关系,现在只需要将dept_emp.emp_no与dept_manager.emp_no中不相等的emp_no取出即可 完整代码: select d1.emp_no, d2.emp_no from dept_emp d1 left join dept_manager d2 on d1.dept_no = d2.dept_no where ...
SQL练习
0
点赞
评论
收藏
分享
2021-09-29 11:34
湖南涉外经济学院 Java
题解 | #获取所有非manager的员工emp_no#
两种方法:方法一:使用 not in问题是要找出所有非manager的员工编号,所以我们可以使用 not in select emp_no from employees where emp_no not in (select emp_no from dept_manager) 方法二:使用 left join我们这里通过 left join 来解题。主表为 employees,找对应 dept_no 为空的数据行即可 select e.emp_no from employees e left join dept_manager d on e.emp_no = d.emp_no where de...
SQL练习
0
点赞
评论
收藏
分享
2021-10-29 10:47
已编辑
湖南涉外经济学院 Java
题解 | #找出所有员工当前薪水salary情况#
思路:一个 group by 解决相同薪水只显示一次的问题,order by 解决逆序显示的问题 注意点:除了 group by 可以解决相同薪水显示一次的问题,也可以使用 distinct 来进行去重,其实两者没有什么差别,在重复量大的时候,group by 的效率比 distinct 稍高,在重复量低的时候,distinct 比 group by 稍高 建议:两者没太大区别,看情况使用,group by 主要就是做分组的,distinct 主要就是做去重的。 相关文章链接 distinct 和 group by 的区别 select salary from salaries group b...
SQL练习
0
点赞
评论
收藏
分享
1
2
3
4
5
6
关注他的用户也关注了:
牛客网
牛客企业服务