ชั้น 29 ออฟฟิศเศส แอท เซ็นทรัลเวิลด์

999/9 พระราม 1 กรุงเทพฯ 10330

บริการตลอด 24 ชั่วโมง

ทุกวัน ไม่เว้นวันหยุด

0-2107-3466

โทรเลยดิจะรออะไร

Home » SQL » SQL SELECT DISTINCT Statement

SQL SELECT DISTINCT Statement

ฐานข้อมูลตัวอย่าง

ก่อนจะเรียนรู้การใช้คำสั่ง DISTINCT มาดูตัวอย่างตารางข้อมูลที่จะใช้กันก่อน
นี่คือส่วนหนึ่งของตาราง Customers ที่เก็บข้อมูลลูกค้าในฐานข้อมูล

CustomerID CustomerName ContactName Address City PostalCode Country
1Alfreds 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
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

ตารางนี้มี 7 คอลัมน์ (Columns) ได้แก่ CustomerID, CustomerName, ContactName, Address, City, PostalCode, และ Country

เมื่อไม่ใช้ DISTINCT ?

หากไม่ใช้ DISTINCT จะดึงค่าของคอลัมน์ “Country” จากทุกระเบียน (Records)
รวมถึงค่าที่อาจซ้ำกันด้วย

				
					SELECT Country 
FROM Customers;
				
			

ดังนั้น DISTINCT จะช่วยให้ผลลัพธ์แสดงเฉพาะค่าที่แตกต่าง

คำสั่ง SELECT DISTINCT

คำสั่ง SELECT DISTINCT ใช้เพื่อ แสดงเฉพาะค่าที่ไม่ซ้ำกัน (Distinct / Different Values) จากคอลัมน์ในตาราง

คำสั่งนี้จะกรองค่าที่ซ้ำกันออก เช่น “Mexico” ปรากฏหลายครั้ง แต่ผลลัพธ์จะมีเพียงครั้งเดียว

				
					SELECT DISTINCT Country
FROM Customers;

				
			

รูปแบบคำสั่ง (Syntax)

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

				
			

คุณสามารถระบุได้มากกว่าหนึ่งคอลัมน์
โดยระบบจะถือว่าข้อมูล “ไม่ซ้ำ” ก็ต่อเมื่อ ค่าทั้งหมดในคอลัมน์ที่ระบุแตกต่างกัน

การนับค่าที่ไม่ซ้ำกัน (Count Distinct)

คุณสามารถใช้ DISTINCT ร่วมกับฟังก์ชัน COUNT()

เพื่อหาจำนวนค่าที่แตกต่างกัน เช่น จำนวนประเทศที่ไม่ซ้ำกันในตาราง

				
					SELECT COUNT(DISTINCT Country) 
FROM Customers;
				
			

แต่สามารถใช้วิธีแก้ไข (workaround) ได้ดังนี้:

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