题解 | #给出employees表中排名为奇数行的first_name#
给出employees表中排名为奇数行的first_name
http://www.nowcoder.com/practice/e3cf1171f6cc426bac85fd4ffa786594
知识点
- 该题的意思是先按照first_name升序排序,然后取序号为奇数的行,最后输出的结果要按照原表的顺序
- 因此使用窗口函数排序内连接到原表里面,选择序号为奇数的就行
代码
select e.first_name
from employees as e
join (
select first_name,
row_number() over (order by first_name) as rk_name
from employees) as r
on e.first_name = r.first_name
where r.rk_name % 2 = 1