La clausula de order by siempre va al final
....
) foo
order by ...
Es más eficiente que las subconsultas, porque por cada registro que saques se hace una subconsulta, tu tienes 3 subconsultas dentro de tu select, si tienes 1000 registros tiras 3001 consultas.
salu2



