109号
109号
全部文章
分类
题解(16)
归档
标签
去牛客网
登录
/
注册
109号的博客
全部文章
(共8篇)
找出所有员工当前薪水情况,对于相同薪水只显示一次,并按照逆序显示
1.常规解法,使用DISTINCT和ORDER BY: SELECT DISTINCT salary FROM salaries WHERE to_date='9999-01-01' ORDER BY salary DESC 2.也可以使用GROUP BY :按照salary进行分组 SELECT ...
排序
2021-01-04
9
991
查找入职员工时间排名倒数第三的员工所有信息
题中说明了“员工入职的日期都不是同一天”,可以直接使用ORDER BY逆序排序,再使用LIMIT和OFFSET确定排名倒数第三的员工 SELECT * FROM employees ORDER BY hire_date DESC LIMIT 1 OFFSET 2如果有多个员工在同一天入职,可以使用子...
排序
2021-01-04
4
624
查找最晚入职员工的所有信息
题目中已经说明了“员工入职的日期都不是同一天”,这个时候直接使用order by按照降序desc排列,选取第一条(limit)数据即可 SELECT * FROM employees ORDER BY hire_date DESC LIMIT 1如果有多个员工的入职日期相同,就需要使用子查询限定最晚...
排序
2021-01-04
14
1050
所有部门中当前员工当前薪水最高的相关信息
刚开始的思路:联结两个表后使用GROUP BY 和MAX聚合函数,但是在mysql环境中通不过 SELECT dept_no,dept_emp.emp_no,MAX(salary) AS salary FROM dept_emp INNER JOIN salaries ON dept_emp.em...
排序
联结
2020-12-14
40
2317
统计牛客每个日期登录新用户个数
两种解法: 使用count计算每日新用户个数 使用case和窗口函数计算每个用户的登陆次数序号,选取第一次登陆的计数 使用count计算每日新用户个数时,要注意不能遗漏新用户个数为0的日期,可以使用union补充上 SELECT l.mdate AS date,COUNT(user_id) AS...
排序
sql
2020-12-07
5
763
找出每个岗位分数排名前2的用户
两种方法: 使用窗口函数计算排名,再筛选排名前2的用户 使用自联结和count函数计算排名,再筛选排名前2的用户 使用窗口函数dense_rank(),将language_id作为排序的“窗口”,按照得分降序排列 SELECT a.id,name,score FROM ( SELECT ...
排序
sql
2020-12-07
8
1071
考试分数(5):查询各岗位分数的中位数位置上的所有grade信息
去网上搜了一下答案,当总数为偶数时,两个数的逆序或者顺序都会差1,使用abs()函数求绝对值;这里还需要使用Cast是因为不转换的话,可能序列号太大超出上限,太小超出下限0,从而报错修改一下代码: select id,a.job,score,t_rank from( select id,job,sc...
sql
排序
联结
2020-12-06
7
779
不使用order by获取薪水第二多的员工信息
两种方法: 1.使用自连接和count函数计算排名,再筛选薪水排名第二的员工信息 代码块SELECT e.emp_no,s4.salary,last_name,first_name FROM employees AS e,salaries AS s4 WHERE e.emp_no=s4.emp_no...
排序
sql
2020-12-03
0
579