Berdasarkan versi asli Jawaban Johan :
SELECT *
FROM (
SELECT
COALESCE(country, 'total') AS country,
COALESCE(region, 'total' ) AS region,
SUM(`value`) as `value`,
FROM `table`
GROUP BY country, region WITH ROLLUP
) t
ORDER BY country = 'total', country, region = 'total', `value`
Cara kerja trik ini adalah ekspresi country = 'total' dievaluasi menjadi 1 (benar) jika country kolom sama dengan 'total' , dan ke 0 (salah) jika tidak. Dalam urutan numerik menaik, 1 muncul setelah 0. Jadi, pengurutan menurut ekspresi itu memaksa setiap baris di mana country kolom sama dengan 'total' untuk mengurutkan setelah kolom lainnya.
Demikian pula, mengurutkan berdasarkan ekspresi region = 'total' sebelum value memaksa setiap baris dengan nilai 'total' di region mereka untuk mengurutkan setelah baris lain dengan country yang sama , terlepas dari value mereka kolom.
Trik yang sama bekerja dengan operator perbandingan
lainnya juga. Misalnya, jika Anda ingin memaksa nilai negatif untuk mengurutkan setelah nilai positif, Anda dapat mengurutkan baris menurut `value` < 0, `value` .