Na základě původní verze Johanova odpověď :
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`
Tento trik funguje tak, že výraz country = 'total' vyhodnotí se jako 1 (pravda), pokud country sloupec se rovná 'total' a na 0 (nepravda) jinak. Ve vzestupném číselném pořadí následuje 1 za 0. Seřazení podle tohoto výrazu tedy vynutí všechny řádky, kde je country sloupec se rovná 'total' seřadit podle jiných sloupců.
Podobně řazení podle výrazů region = 'total' před value vynutí všechny řádky s hodnotou 'total' v jejich region seřadit podle jiných řádků se stejnou country , bez ohledu na jejich value sloupec.
Stejný trik funguje s dalšími operátory porovnání
také. Pokud byste například chtěli vynutit řazení záporných hodnot po kladných hodnotách, můžete řádky seřadit podle `value` < 0, `value` .