题解 | #统计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
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表和排名表,再对序号进行条件筛选就可以了。如果不进行表之间的连接,会导致最终结果是按顺序来的。