SQL SELECT DISTINCT Statement

SQL SELECT DISTINCT

คำสั่ง SELECT DISTINCT ใช้เพื่อส่งคืนเฉพาะค่าที่แตกต่างกัน (ต่างกัน)

ภายในตาราง คอลัมน์มักจะมีค่าที่ซ้ำกันหลายค่า และบางครั้งคุณต้องการแสดงเฉพาะค่าที่แตกต่างกัน (distinct)

ไวยากรณ์ SELECT DISTINCT 

SELECT DISTINCT column1, column2, ...
FROM table_name;


Demo Database

ด้านล่างนี้คือการเลือกจากตาราง “Customers” ในฐานข้อมูลตัวอย่าง Northwind:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1
Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4
Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden


ตัวอย่าง SELECT ที่ไม่มี DISTINCT

คำสั่ง SQL ต่อไปนี้จะเลือกค่าทั้งหมด (รวมถึงค่าที่ซ้ำกัน) จากคอลัมน์ “Country” ในตาราง “Customers”:

SELECT Country FROM Customers;

ตอนนี้ให้เราใช้คำสั่ง SELECT DISTINCTและดูผลลัพธ์


ตัวอย่าง SELECT DISTINCT

คำสั่ง SQL ต่อไปนี้เลือกเฉพาะค่า DISTINCT จากคอลัมน์ “Country” ในตาราง “Customers”:

ตัวอย่าง

SELECT DISTINCT Country FROM Customers;

คำสั่ง SQL ต่อไปนี้แสดงจำนวนประเทศลูกค้าที่แตกต่างกัน (distinct):

ตัวอย่าง

SELECT COUNT(DISTINCT Country) FROM Customers;

หมายเหตุ: ตัวอย่างด้านบนจะใช้ไม่ได้ใน Firefox! เนื่องจาก ไม่รองรับ COUNT(DISTINCT 
column_name ) ในฐานข้อมูล Microsoft Access Firefox ใช้ Microsoft Access ในตัวอย่างของเรา

นี่คือวิธีแก้ปัญหาสำหรับ MS Access:

ตัวอย่าง

SELECT Count(*) AS DistinctCountries
FROM (SELECT DISTINCT Country FROM Customers);