まず、サブクエリは必要ありません。代わりに、条件をカウントできます。
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