Aquí hay un ejemplo diferente que no se puede reescribir sin alias (no se puede GROUP BY DISTINCT).
Imagine una tabla llamada purchasesque registra las compras realizadas por customersat stores, es decir, es una tabla de muchos a muchos y el software necesita saber qué clientes han realizado compras en más de una tienda:
SELECT DISTINCT customer_id, SUM(1)
FROM ( SELECT DISTINCT customer_id, store_id FROM purchases)
GROUP BY customer_id HAVING 1 < SUM(1);
.. romperá con el error Every derived table must have its own alias. Arreglar:
SELECT DISTINCT customer_id, SUM(1)
FROM ( SELECT DISTINCT customer_id, store_id FROM purchases) AS custom
GROUP BY customer_id HAVING 1 < SUM(1);
(Tenga en cuenta el AS customalias).