Първо, не се нуждаете от подзаявките, вместо това можете да преброите условие.
with rollup
модификатор може да се добави към group by клауза за включване на общата сума. order by тогава не може да се използва в същата заявка, но може да се приложи във външна заявка.
Освен това, с използването на coalesce можете да замените null стойност за този общ ред с етикета по ваш избор.
И накрая, за да сортирате общия ред в края, можете да добавите is null израз в order by клауза, която ще даде оценка на false или true . Последният се поръчва последен.
select coalesce(checkby, 'Total') as checkby_or_total,
fully,
faulty,
lasthour,
total
from (
select qcheck.checkby,
count(case result when 'fully tested & working' then 1 end) as fully,
count(case result when 'faulty' then 1 end) as faulty,
count(case when finishdate >= now()-interval 1 hour then 1 end) as lasthour,
count(*) as total
from qcheck
where date(finishdate) = CURDATE()
and qcheck.checkby not like 'michael'
and qcheck.checkby not like 'chaz'
group by qcheck.checkby with rollup
) as main
order by checkby is null,
total desc