Ось інший приклад, який не можна переписати без псевдонімів (не можна GROUP BY DISTINCT
).
Уявіть таблицю під назвою, в purchases
якій записуються покупки, зроблені customers
в stores
, тобто це таблиця багато-багато, і програмне забезпечення повинно знати, які клієнти здійснювали покупки в більш ніж одному магазині:
SELECT DISTINCT customer_id, SUM(1)
FROM ( SELECT DISTINCT customer_id, store_id FROM purchases)
GROUP BY customer_id HAVING 1 < SUM(1);
.. перерветься з помилкою Every derived table must have its own alias
. Виправити:
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);
(Зверніть увагу на AS custom
псевдонім).