with median_rows as(select
job,
floor((count(*)+1)/2) as start_row,
floor((count(*)+2)/2) as end_row
from grade
group by job)
select
t1.*
from
(select
id,
job,
score,
dense_rank() over(partition by job order by score desc) as t_rank
from grade
order by id) t1
left join median_rows on t1.job=median_rows.job
where
t1.t_rank=median_rows.start_row
or
t1.t_rank=median_rows.end_row
order by
t1.id



京公网安备 11010502036488号