with t as (select job,count(score) as num from grade 
group by job)
select job
     , ceil(num/2) as start
     , if(num%2=0,ceil(num/2)+1,ceil(num/2)) as end
   from t 
order by job

方法很多:if(条件表达式,满足条件的结果,不满足条件的返回值)简单

ceil()向上取整,floor()向下取整

注意:start时:无论是奇数还是偶数都一样ceil(num/2):ceil(num/2) as start

end时分情况,偶数是ceil(num/2)+1,奇数时ceil(num/2):if(num%2=0,ceil(num/2)+1,ceil(num/2)) as end