เมื่อคุณทำงานกับฐานข้อมูล อาจมีบางครั้งที่คุณต้องการรับค่าที่ไม่ซ้ำทั้งหมดในชุดข้อมูลเฉพาะ ตัวอย่างเช่น คุณอาจต้องการรับรายชื่อผลิตภัณฑ์ที่คุณเคยขายในอดีต หรือคุณอาจต้องการรับรายชื่อภาพยนตร์ประเภทต่างๆ ทั้งหมดที่มีอยู่ในฐานข้อมูลภาพยนตร์
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
มีประโยชน์อย่างยิ่งเมื่อคุณทำงานกับชุดข้อมูลขนาดใหญ่ขึ้นซึ่งข้อมูลที่ซ้ำกันอาจทำให้เสียสมาธิ