Aquí hay un ejemplo diferente que no se puede reescribir sin alias (no se puede GROUP BY DISTINCT
).
Imagine una tabla llamada purchases
que registra las compras realizadas por customers
at 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 custom
alias).