题解 | #给出employees表中排名为奇数行的first_name#

给出employees表中排名为奇数行的first_name

http://www.nowcoder.com/practice/e3cf1171f6cc426bac85fd4ffa786594

题目

对于employees表,在对first_name进行排名后,选出奇数排名对应的first_name

法一:窗口函数

注意:输出的结果不需排序 --所以需要再连接一个表,按原表顺序输出

select e.first_name
from employees e JOIN
(select first_name,
row_number() over(order by first_name) rk 
from employees) a using(first_name)
where a.rk%2=1

法二:count()

select e1.first_name
from employees as e1
where (
select count(*) 
from employees as e2
where e2.first_name <= e1.first_name    -- 统计当前(e1)first_name之前有多少条数据,即排在多少行数据
)%2=1;

同类题型:SQL23 对所有员工的薪水按照salary降序进行1-N的排名

链接

全部评论

相关推荐

04-30 21:35
已编辑
长安大学 C++
晓沐咕咕咕:评论区没被女朋友好好对待过的计小将可真多。觉得可惜可以理解,毕竟一线大厂sp。但是骂楼主糊涂的大可不必,说什么会被社会毒打更是丢人。女朋友体制内生活有保障,读研女朋友还供着,都准备订婚了人家两情相悦,二线本地以后两口子日子美滋滋,哪轮到你一个一线城市房子都买不起的996清高计小将在这说人家傻😅
点赞 评论 收藏
分享
05-05 21:45
已编辑
广州大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务