SQL - การจัดการรายการที่ซ้ำกัน
อาจเกิดสถานการณ์ขึ้นเมื่อคุณมีระเบียนที่ซ้ำกันหลายรายการในตาราง ในขณะที่เรียกข้อมูลดังกล่าวควรดึงเฉพาะระเบียนที่ไม่ซ้ำกันแทนที่จะดึงข้อมูลที่ซ้ำกัน
SQL DISTINCT คำหลักที่เราได้พูดถึงไปแล้วนั้นใช้ร่วมกับคำสั่ง SELECT เพื่อกำจัดระเบียนที่ซ้ำกันทั้งหมดและโดยการดึงเฉพาะระเบียนที่ไม่ซ้ำกัน
ไวยากรณ์
ไวยากรณ์พื้นฐานของคีย์เวิร์ด DISTINCT เพื่อกำจัดเร็กคอร์ดที่ซ้ำกันมีดังนี้
SELECT DISTINCT column1, column2,.....columnN
FROM table_name
WHERE [condition]
ตัวอย่าง
พิจารณาตารางลูกค้าที่มีบันทึกต่อไปนี้
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
ขั้นแรกให้เราดูว่าแบบสอบถาม SELECT ต่อไปนี้ส่งคืนระเบียนเงินเดือนที่ซ้ำกันอย่างไร
SQL> SELECT SALARY FROM CUSTOMERS
ORDER BY SALARY;
สิ่งนี้จะให้ผลลัพธ์ต่อไปนี้โดยที่เงินเดือนของ 2000 จะมาสองครั้งซึ่งเป็นการบันทึกซ้ำจากตารางเดิม
+----------+
| SALARY |
+----------+
| 1500.00 |
| 2000.00 |
| 2000.00 |
| 4500.00 |
| 6500.00 |
| 8500.00 |
| 10000.00 |
+----------+
ตอนนี้ให้เราใช้คีย์เวิร์ด DISTINCT กับคำค้นหา SELECT ด้านบนและดูผลลัพธ์
SQL> SELECT DISTINCT SALARY FROM CUSTOMERS
ORDER BY SALARY;
สิ่งนี้จะให้ผลลัพธ์ต่อไปนี้โดยที่เราไม่มีรายการที่ซ้ำกัน
+----------+
| SALARY |
+----------+
| 1500.00 |
| 2000.00 |
| 4500.00 |
| 6500.00 |
| 8500.00 |
| 10000.00 |
+----------+