Es realmente simple:usa UNION ALL
en lugar de UNION
.
SELECT * FROM (
SELECT name,total,rate
FROM business b
WHERE rate > 100
ORDER BY total DESC) x
UNION ALL
SELECT * FROM (
SELECT name,total,rate
FROM business b
WHERE rate <= 100
ORDER BY rate ASC) y
UNION ALL conserva el orden codificado.
UNION elimina los duplicados y no garantiza el pedido. La mayoría de las bases de datos ordenan la salida (para facilitar la detección de duplicados).