sql command

Database SQL – Distinct

การใช้งาน SQL Select query statement ในบางครั้งข้อมูล column ที่เรานำมาแสดงผล อาจจะมีข้อมูลซ้ำกันบ้าง ซึ่งในบทความที่แล้วเราสามารถนำ SQL GROUP BY มาทำการจัดกลุ่มข้อมูลเหล่านี้ได้ แต่ถ้าเราต้องการแสดงผลข้อมูลเฉพาะบาง column โดยที่แสดงผลแบบข้อมูลไม่ซ้ำกัน หรือ unique ข้อมูลได้ด้วย keyword distinct ซึ่งระบบจะทำการเอาข้อมูลที่ซ้ำออกไปให้

 

รูปแบบ (Syntax)

ภายใต้ SQL Select query statement เราสามารถใส่ keyword “DISTINCT” นำหน้า column name ที่ต้องการเอาข้อมูลที่ซ้ำออก

SELECT DISTINCT column1, column2,.....columnN 
FROM table_name
WHERE [condition]

 

ตัวอย่างการใช้ DISTINCT

ตัวอย่างข้อมูลใน table CUSTOMERS

+----+----------+-----+-----------+----------+
| 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 |
+----+----------+-----+-----------+----------+

 

การดึงข้อมูลจาก table CUSTOMERS เพื่อแสดง column SALARY ทั้งหมดโดยเรียงจากน้อยไปมาก

SQL> SELECT SALARY FROM CUSTOMERS
   ORDER BY SALARY;

ผลลัพธ์ที่ได้

+----------+
| SALARY   |
+----------+
|  1500.00 |
|  2000.00 |
|  2000.00 |
|  4500.00 |
|  6500.00 |
|  8500.00 |
| 10000.00 |
+----------+

 

ถ้าเรามีการระบุ keyword “DISTINCT” นำหน้า column name ใน select statement

SQL> SELECT DISTINCT SALARY FROM CUSTOMERS
   ORDER BY SALARY;

ผลลัพธ์ที่ได้ จะเห็นว่า SALARY ที่มีค่าซ้ำกันเช่น 2000 จะถูกนำเอาบรรทัดที่ซ้ำออกให้เหลือเพียงบรรทัดเดียว

+----------+
| SALARY   |
+----------+
|  1500.00 |
|  2000.00 |
|  4500.00 |
|  6500.00 |
|  8500.00 |
| 10000.00 |
+----------+

 

 

Reference:

รวมคำสั่ง SQL Command พื้นฐานเบื้องต้น

Database, Oracle, MySQL

 

 

Author: Suphakit Annoppornchai

Credit: https://saixiii.com, https://www.tutorialspoint.com

Leave a Reply