SQL面试统计函数、LIMIT OFFSET、left join

这篇博客总结了SQL面试中常见的统计函数和查询技巧,包括如何获取所有员工的当前经理、部门中薪水最高的员工、按title分组统计、查找特定员工的薪水涨幅等。讲解了LIMIT和OFFSET的使用,以及LEFT JOIN在处理数据关联时的作用。
摘要由CSDN通过智能技术生成

一、目录

题目链接:
https://www.nowcoder.com/ta/sql

题目 知识点
11 join连接、<>不相等用法
12 join连接、查找最值、group by
13 group by、count()、统计大于某值用法
14 分组、统计不重复值个数
15 查找奇偶数、排序
16 group by分组、条件限制下的查找平均值
17 查找数值第二大、LIMIT x OFFSET y
18 不使用order进行排序、not in 用法
19 三表联合、inner join 与 left join区别
20 生成新差值
11. 获取所有员工当前的manager
  • 题目描述
获取所有员工当前的(dept_manager.to_date='9999-01-01')manager,如果员工是manager的话不显示(也就是如果当前的manager是自己的话结果不显示)。输出结果第一列给出当前员工的emp_no,第二列给出其manager对应的emp_no。
CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL, -- '所有的员工编号'
`dept_no` char(4) NOT NULL, -- '部门编号'
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
CREATE TABLE `dept_manager` (
`dept_no` char(4) NOT NULL, -- '部门编号'
`emp_no` int(11) NOT NULL, -- '经理编号'
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
  • 思路
    1.通过emp_no链接两个表;
    2.限定条件:dept_manager.to_date=‘9999-01-01’ ,

  • 代码

SELECT de.emp_no, dm.emp_no AS manager_no
FROM dept_emp AS de INNER JOIN dept_manager AS dm ON dm.dept_no = de.dept_no
WHERE dm.to_date = '9999-01-01'  AND de.emp_no <> dm.emp_no
12. 获取所有部门中当前员工薪水最高的相关信息
  • 题目描述
获取所有部门中当前(dept_emp.to_date = '9999-01-01')员工当前(salaries.to_date='9999-01-01')薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary,按照部门升序排列。
CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值