Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL

คำสั่ง SQL DISTINCT: ดึงค่าที่ไม่ซ้ำกัน

เมื่อทำงานกับฐานข้อมูล คุณอาจต้องการดึงค่าที่ไม่ซ้ำกัน (unique values) จากชุดข้อมูล เช่น รายชื่อสินค้าที่ขายไปแล้ว หรือหมวดหมู่ภาพยนตร์ทั้งหมดในฐานข้อมูลหนัง

SQL มีฟังก์ชัน built-in ช่วยทำได้: DISTINCT ออปอเรเตอร์ DISTINCT ช่วยลบเรคอร์ดซ้ำ เพื่อดึงเฉพาะค่าที่ไม่ซ้ำกันในชุดข้อมูล

ในบทช่วยสอนนี้ เราจะแยกวิเคราะห์พื้นฐานของ DISTINCT ใน SQL และเมื่อไหร่ควรใช้

บทนำสั้นๆ เกี่ยวกับ SQL Query

เพื่อดึงข้อมูลจากฐานข้อมูล ต้องเขียนคิวรี่ คิวรี่ SQL เกือบทุกครั้งเริ่มด้วยคำสั่ง SELECT ระบุข้อมูลที่ต้องการ ไวยากรณ์พื้นฐาน:

SELECT column_name FROM table_name WHERE your_query_conditions;

ตัวอย่างคิวรี่ดึงชื่อและตำแหน่งพนักงานทั้งหมด:

SELECT name, title FROM employees;

ผลลัพธ์:

name title
LukeSales Associate
MikeSales Associate
HannahSales Associate
GeoffSenior Sales Associate
AlexisSales Associate
JonahVice President of Sales
EmmaMarketing Director

หากต้องการหลายคอลัมน์ ให้คั่นด้วยจุลภาค หรือใช้ * สำหรับทุกคอลัมน์ สามารถใช้ WHERE กรองเงื่อนไขได้ เช่น หา Sales Associate ทั้งหมด:

SELECT name, title FROM employees WHERE title = 'Sales Associate':

ผลลัพธ์:

name title
LukeSales Associate
MikeSales Associate
HannahSales Associate
AlexisSales Associate

(4 แถว)

SQL DISTINCT

เมื่อดึงข้อมูล ผลลัพธ์อาจมีแถวหรือค่าซ้ำ สมมติต้องการรายชื่อตำแหน่งทั้งหมดที่พนักงานครองอยู่ ถ้าใช้ SELECT ธรรมดาจะได้ค่าซ้ำ:

SELECT title FROM employees;

ผลลัพธ์:

title
Sales Associate 
Sales Associate 
Sales Associate 
Senior Sales Associate 
Sales Associate 
Vice President of Sales 
Marketing Director

(7 แถว)

ตำแหน่ง Sales Associate ปรากฏ 4 ครั้ง เพราะมี 4 คนครองตำแหน่งนี้ แต่ถ้าต้องการรู้แค่ว่ามีตำแหน่งอะไรบ้าง ไม่สนจำนวนคน ให้ใช้ SQL DISTINCT

คีย์เวิร์ด DISTINCT ใช้ร่วมกับ SELECT:

SELECT DISTINCT title FROM employees;

ผลลัพธ์:

title          
Vice President of Sales
Sales Associate
Senior Sales Associate
Marketing Director

(4 แถว)

คิวรี่คืนตำแหน่งทั้งหมดที่พนักงานครองอยู่ โดยไม่ซ้ำกัน ไม่มีค่าซ้ำในผลลัพธ์

DISTINCT มีประโยชน์มากเมื่อทำงานกับข้อมูลขนาดใหญ่ ในตัวอย่างมีแค่ 7 พนักงาน แต่ถ้ามี 500 คน จะยากมากที่จะดูตำแหน่งที่มีอยู่ถ้าไม่ใช้ DISTINCT

สรุป

ตอนนี้คุณรู้จักการใช้ DISTINCT บน SQL server แล้ว

ตามที่อธิบาย SQL SELECT DISTINCT ช่วยดึงข้อมูลจากตารางและลบแถวหรือค่าซ้ำออกจากผลลัพธ์ เช่น ต้องการรายชื่อสาขาบริษัททั้งหมด ใช้ DISTINCT ได้ เหมาะอย่างยิ่งเมื่อทำงานกับข้อมูลขนาดใหญ่ที่ค่าซ้ำอาจรบกวน