Đây là một ví dụ khác không thể viết lại mà không có bí danh (không thể GROUP BY DISTINCT
).
Hãy tưởng tượng một bảng được gọi là purchases
ghi lại các giao dịch mua được thực hiện customers
tại stores
, tức là nhiều bảng và nhiều phần mềm cần biết khách hàng nào đã mua hàng tại nhiều hơn một cửa hàng:
SELECT DISTINCT customer_id, SUM(1)
FROM ( SELECT DISTINCT customer_id, store_id FROM purchases)
GROUP BY customer_id HAVING 1 < SUM(1);
.. sẽ phá vỡ với lỗi Every derived table must have its own alias
. Sửa chữa:
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);
(Lưu ý AS custom
bí danh).