题目
解答
自写答案,觉得对但是不知为何通不过,之后来纠错
select job,
case when total%2=1 then (total+1)/2 else total/2 end as "start",
case when total%2=1 then (total+1)/2 else (total/2)+1 end as "end"
from (select job,count(*) as total from grade group by job) as t
order by job;
借鉴答案:
floor:函数只返回整数部分,小数部分舍弃。
round:函数四舍五入,大于0.5的部分进位,不到则舍弃。
SELECT job,FLOOR((COUNT(*)+1)/2) AS `start`,FLOOR((COUNT(*)+1)/2)+if(COUNT(*) % 2=1,0,1) AS `end`
from grade
GROUP BY job
order by job;