select
g.id,
g.job,
g.score,
t_rank
from
(
select
id,
job,
score,
row_number() over (
partition by
job
order by
score DESC
) as t_rank
from
grade
) as g
join (
select
job,
floor((count(job) + 1) / 2) as t1,
floor((count(job) + 2) / 2) as t2
from
grade
group by
job
) as tmp on g.job = tmp.job
where
g.t_rank in (tmp.t1, tmp.t2)
order by
id ASC

京公网安备 11010502036488号