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

SQL Distinct

เมื่อคุณทำงานกับฐานข้อมูล อาจมีบางครั้งที่คุณต้องการรับค่าที่ไม่ซ้ำทั้งหมดในชุดข้อมูลเฉพาะ ตัวอย่างเช่น คุณอาจต้องการรับรายชื่อผลิตภัณฑ์ที่คุณเคยขายในอดีต หรือคุณอาจต้องการรับรายชื่อภาพยนตร์ประเภทต่างๆ ทั้งหมดที่มีอยู่ในฐานข้อมูลภาพยนตร์

SQL มีฟังก์ชันในตัวที่สามารถช่วยคุณดึงข้อมูลนี้:DISTINCT . DISTINCT โอเปอเรเตอร์ช่วยให้คุณสามารถลบระเบียนที่ซ้ำกัน เพื่อให้คุณสามารถดึงค่าชุดค่าผสมที่ไม่ซ้ำทั้งหมดในชุดข้อมูลได้

ในบทช่วยสอนนี้ เราจะอธิบายพื้นฐานของ DISTINCT ใน SQL และเวลาที่คุณสามารถใช้โอเปอเรเตอร์นี้

ตัวทบทวนแบบสอบถาม SQL

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

SELECT column_name FROM table_name WHERE your_query_conditions;

ลองใช้ตัวอย่างเพื่อแสดงคำถามในการดำเนินการ แบบสอบถามต่อไปนี้จะส่งคืนชื่อและตำแหน่งของพนักงานทุกคนที่ทำงานให้กับธุรกิจของเรา:

SELECT name, title FROM employees;

รหัสของเราส่งคืน:

ชื่อ หัวเรื่อง
ลุค พนักงานขาย
ไมค์ พนักงานขาย
ฮันนาห์ พนักงานขาย
เจฟฟ์ พนักงานขายอาวุโส
อเล็กซิส พนักงานขาย
โจนาห์ รองประธานฝ่ายขาย
เอ็มม่า ผู้อำนวยการฝ่ายการตลาด

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

เมื่อเราเขียนแบบสอบถาม เราสามารถใช้ WHERE เพื่อกรองเร็กคอร์ดที่ตรงตามชุดเงื่อนไขเฉพาะ ตัวอย่างเช่น หากเราต้องการรับพนักงานขายที่ทำงานให้กับธุรกิจของเรา เราสามารถใช้คำค้นหาต่อไปนี้:

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

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

แบบสอบถามของเราส่งคืนต่อไปนี้:

ชื่อ หัวเรื่อง
ลุค พนักงานขาย
ไมค์ พนักงานขาย
ฮันนาห์ พนักงานขาย
อเล็กซิส พนักงานขาย

(4 แถว)

ตอนนี้เรารู้พื้นฐานของการสืบค้นแล้ว เราสามารถสำรวจวิธีใช้ DISTINCT ใน SQL .

ความแตกต่างของ SQL

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

SELECT title FROM employees;

แบบสอบถามของเราส่งคืนผลลัพธ์ต่อไปนี้:

หัวเรื่อง
พนักงานขาย
พนักงานขาย
พนักงานขาย
พนักงานขายอาวุโส
พนักงานขาย
รองประธานฝ่ายขาย
ผู้อำนวยการฝ่ายการตลาด

(7 แถว)

อย่างที่คุณเห็นชื่อ Sales Associate ปรากฏสี่ครั้งเพราะมีพนักงานสี่คนที่ดำรงตำแหน่งนั้น แต่ถ้าเราแค่ต้องการรู้ว่าชื่ออะไรอยู่ในฐานข้อมูล แทนที่จะรู้ว่ามีกี่คนที่มีชื่อเรื่องนั้น

นั่นคือสิ่งที่ SQL DISTINCT โอเปอเรเตอร์เข้ามา โดยใช้ SQL DISTINCT เราสามารถลบข้อมูลที่ซ้ำกันทั้งหมดออกจากแบบสอบถาม

DISTINCT คีย์เวิร์ดใช้ร่วมกับ SELECT โอเปอเรเตอร์ นี่คือตัวอย่างของการเรียกใช้แบบสอบถามเดียวกันจากด้านบน แต่ด้วย DISTINCT โอเปอเรเตอร์ปัจจุบัน:

SELECT DISTINCT title FROM employees;

แบบสอบถามของเราส่งคืนต่อไปนี้:

หัวเรื่อง
รองประธานฝ่ายขาย
พนักงานขาย
พนักงานขายอาวุโส
ผู้อำนวยการฝ่ายการตลาด

(4 แถว)

แบบสอบถามของเราส่งคืนรายชื่อทั้งหมดที่พนักงานถือครอง อย่างไรก็ตาม ไม่ได้ทำซ้ำชื่อใด ๆ ที่ถือโดยพนักงานมากกว่าหนึ่งคน เราไม่มีค่าที่ซ้ำกันในผลลัพธ์ของเรา

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

บทสรุป

ตอนนี้คุณรู้วิธีใช้ DISTINCT โอเปอเรเตอร์บน SQL เซิฟเวอร์

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