###先对每个公司员工工资排序并增加一列序号,然后计算每个公司人数,把两部分join起来取每个公司序号为该公司(总数+1)/2的数据
select a.Id, a.Company, a.Salary
from(
select
a.*,
@num:=if(@company=Company, @num+1, 1) as num,
@company:=Company
from
Employee as a, (select @num:=0, @company:='') as b
order by Company, Salary desc
) as a
join (
select Company, count(*) as count
from Employee
group by Company
) as b
on a.Company=b.Company and a.num=(b.count+1) div 2
如有错误,欢迎指正!