La clausola ORDER BY viene eseguita dopo l'esecuzione di qualsiasi altra cosa nell'istruzione SELECT; in uno scenario GROUPing, il set di risultati è limitato alle colonne utilizzate per aggregare i dati. Se non hai una colonna specificata nel tuo set di risultati iniziale, il motore di elaborazione non capisce cosa fare con l'output richiesto.
In altre parole, poiché la tua query non restituisce valori distinti per t2.id e t1.id (poiché non sono utilizzati nella clausola GROUP BY), il motore non può restituire i dati in quell'ordine.