题解 | #统计salary的累计和running_total#

对于employees表中,给出奇数行的first_name

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

select e.first_name from employees e
join 
(select first_name,row_number() over(order by first_name asc) as rank from employees) t 
on e.first_name=t.first_name where t.rank%2 <>0 
#要注意三点:第一sqlite和sql server取余用%,而不是双斜杠,mysql里有取余函数mod(3,2)=1
#第二,用row_number而不是rank,因为row_number对于并列值排序不是相同的,它的序号是123456……
#第三,由于原题说不改变顺序,所以连接employees表和排名表,再对序号进行条件筛选就可以了。如果不进行表之间的连接,会导致最终结果是按顺序来的。
全部评论

相关推荐

哥_留个offer先:跟他说,你这个最好用c#,微软就用c#Java不适合这个项目
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务