คำสั่ง DISTINCT ใน SQL ใช้สำหรับการกรองผลลัพธ์ที่ซ้ำกันออกจากการ Query ข้อมูล ซึ่งช่วยให้เราได้ผลลัพธ์ที่ไม่ซ้ำกันในคอลัมน์หรือชุดข้อมูลที่เราต้องการดึงออกมา โดยสามารถประยุกต์ใช้งานได้ในหลายรูปแบบ ดังนี้
SELECT DISTINCT ในคอลัมน์เดียว
ใช้กรองข้อมูลไม่ให้มีข้อมูลซ้ำกันในคอลัมน์เดียว
ตัวอย่าง
SELECT DISTINCT country
FROM customers;คำสั่งนี้จะดึงค่าที่ไม่ซ้ำกันจากคอลัมน์ country ในตาราง customers ออกมา
SELECT DISTINCT หลายคอลัมน์
สามารถใช้ DISTINCT กับหลายคอลัมน์พร้อมกันได้ โดยผลลัพธ์ที่ได้จะเป็นการกรองค่าที่ไม่ซ้ำกันของชุดข้อมูลทั้งหมดในคอลัมน์ที่กำหนด
ตัวอย่าง
SELECT DISTINCT country, city
FROM customers;กรณีนี้จะดึงชุดข้อมูลที่ไม่ซ้ำกันทั้งในคอลัมน์ country และ city หากทั้งสองคอลัมน์มีค่าเหมือนกัน ค่าที่ซ้ำจะไม่ถูกดึงออกมา
การใช้ SELECT DISTINCT ร่วมกับฟังก์ชันอื่น
สามารถใช้งาน DISTINCT ร่วมกับฟังก์ชัน aggregate (เช่น COUNT, SUM, AVG เป็นต้น) เพื่อหาค่าที่ไม่ซ้ำกัน
ตัวอย่าง
SELECT COUNT(DISTINCT country)
FROM customers;คำสั่งนี้จะนับจำนวนประเทศที่ไม่ซ้ำกันในตาราง customers
DISTINCT และ ORDER BY
สามารถใช้งาน DISTINCT ควบคู่กับ ORDER BY เพื่อจัดเรียงผลลัพธ์ได้
ตัวอย่าง
SELECT DISTINCT country
FROM customers
ORDER BY country;คำสั่งนี้จะดึงประเทศที่ไม่ซ้ำกันและจัดเรียงตามลำดับตัวอักษร
DISTINCT กับ WHERE Clause
สามารถใช้งาน DISTINCT ร่วมกับ WHERE เพื่อกรองข้อมูลที่ต้องการให้เฉพาะเจาะจงยิ่งขึ้น
ตัวอย่าง
SELECT DISTINCT country
FROM customers
WHERE city = 'Bangkok';คำสั่งนี้จะดึงประเทศที่ไม่ซ้ำกันจากลูกค้าที่อาศัยในเมืองกรุงเทพฯ เท่านั้น
DISTINCT กับ JOIN
สามารถใช้งาน DISTINCT ร่วมกับ JOIN เพื่อดึงข้อมูลที่ไม่ซ้ำกันจากหลายตาราง
ตัวอย่าง
SELECT DISTINCT customers.country
FROM customers
JOIN orders
ON customers.customer_id = orders.customer_id;คำสั่งนี้จะดึงประเทศที่ไม่ซ้ำกันจากลูกค้าที่มีการสั่งซื้อสินค้า
คำสั่ง DISTINCT เป็นคำสั่งที่มีประโยชน์มาก ใช้สำหรับการกรองข้อมูลที่ซ้ำกัน สามารถใช้งานได้ทั้งแบบคอลัมน์เดียว หลายคอลัมน์ หรือแม้กระทั่งรวมกับฟังก์ชัน aggregate หรือคำสั่งอื่นๆ
