นี่คือตัวอย่างอื่นที่ไม่สามารถเขียน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);
..will 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
นามแฝง)