题目
解答
自写答案,通不过测试,看讨论的原因是没有考虑到“输出的结果不需排序”,觉得此理由行不通,因为不需排序包含排序情况,更应该能通过测试。
select t.first_name
from
(select e.first_name,
row_number () over (order by first_name ) as ranking
from employees as e) as t
where mod(t.ranking,2)=1
指正答案:
select e.first_name
from employees e join
(select first_name, row_number() over (order by first_name asc) as ranking
from employees) as t
on e.first_name = t.first_name
where t.ranking % 2 = 1;
借鉴答案:
select e1.first_name
from employees e1
where
(select count(*)
from employees e2
where e1.first_name>=e2.first_name)%2 = 1