Pertama-tama, Anda tidak memerlukan sub kueri, Anda dapat melakukan penghitungan pada suatu kondisi.
with rollup
pengubah dapat ditambahkan ke group by klausul untuk memasukkan total keseluruhan. order by tidak dapat digunakan dalam kueri yang sama, tetapi dapat diterapkan dalam kueri luar.
Selanjutnya, dengan penggunaan coalesce Anda dapat mengganti null nilai untuk total baris tersebut dengan label pilihan Anda.
Terakhir, untuk tetap mengurutkan total baris di akhir, Anda dapat menambahkan is null ekspresi dalam order by klausa, yang akan dievaluasi menjadi false atau true . Yang terakhir dipesan terakhir.
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