《数据库SQL实战》不使用order by
来源:互联网 发布:冯大辉 离职 知乎 编辑:程序博客网 时间:2024/05/16 02:10
此题来自于nowcoder,要求不使用order by 取排名第二多的数据。
题目:
查找当前薪水(to_date=’9999-01-01’)排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不准使用order by
CREATE TABLEemployees
(
emp_no
int(11) NOT NULL,
birth_date
date NOT NULL,
first_name
varchar(14) NOT NULL,
last_name
varchar(16) NOT NULL,
gender
char(1) NOT NULL,
hire_date
date NOT NULL,
PRIMARY KEY (emp_no
));
CREATE TABLEsalaries
(
emp_no
int(11) NOT NULL,
salary
int(11) NOT NULL,
from_date
date NOT NULL,
to_date
date NOT NULL,
PRIMARY KEY (emp_no
,from_date
));
解析:
本题主要思想为多层select嵌套与max()函数结合,两次max()的嵌套使用即为次高者。
select s.emp_no,max(s.salary),e.last_name,e.first_name
from salaries as s join employees as e on s.emp_no=e.emp_no
where s.to_date=’9999-01-01’
and s.salary not in (select max(salary) from salaries where s.to_date=’9999-01-01’)
- 《数据库SQL实战》不使用order by
- Open SQL order by 的使用
- SQL语句 - 使用order by优先级排序
- SQL数据库 group by 、having 、where 、order by用法区别
- oracle 数据库 order by 排序的使用
- sql中Distinct、Group by、having、order by使用注意事项
- sql中Distinct、Group by、having、order by使用注意事项
- SQL Order By
- SQL: ORDER BY Clause
- SQL: order by (Oracle)
- sql中的order by
- SQL ORDER BY 子句
- Dynamic Sql Order by
- SQL ORDER BY 子句
- SQL中的Order By
- SQL ORDER BY 语句
- SQL ORDER BY 子句
- Sql Order By
- 类和对象
- 第六章(链表)
- SSD的Resnet实现步骤
- Http以及TCP/IP协议
- python里使用正则表达式的非贪婪模式
- 《数据库SQL实战》不使用order by
- 动态规划-516. Longest Palindromic Subsequence
- 深度学习(4):优化神经网络(2)
- 54. Spiral Matrix
- 美妙仙人掌 cactus
- Android控件
- 大数四则运算模板
- 组装机主板boot menu
- c语言操作redis数据库