แตกต่างใน PostgreSQL: เลือก, เรียงลำดับตาม & จำกัด (ตัวอย่าง)
⚡ สรุปอย่างชาญฉลาด
แตกต่างใน PostgreSQL ใช้ร่วมกับคำสั่ง SELECT เพื่อลบแถวที่ซ้ำกันและส่งคืนเฉพาะค่าที่ไม่ซ้ำกัน เนื้อหาครอบคลุมไวยากรณ์ของ SELECT, SQL Shell และ pgAdmin, DISTINCT บนคอลัมน์เดียวและหลายคอลัมน์ และความแตกต่างระหว่าง DISTINCT กับ GROUP BY

คุณสามารถดึงข้อมูลจากตารางได้โดยใช้คำสั่ง SELECT
ไวยากรณ์:
SELECT [column names] FROM [table_name]
ที่นี่
- ชื่อคอลัมน์: ชื่อของคอลัมน์ที่คุณต้องการดึงค่าออกมา
- จาก: ส่วน FROM กำหนดตารางต้นทางอย่างน้อยหนึ่งตารางสำหรับคำสั่ง SELECT
- table_name: ชื่อของตารางที่มีอยู่แล้วที่คุณต้องการเรียกดูข้อมูล
อะไรคือความแตกต่างใน PostgreSQL?
การขอ DISTINCT ประโยคใน PostgreSQL ใช้ร่วมกับคำสั่ง SELECT เพื่อลบแถวที่ซ้ำกันออกจากชุดผลลัพธ์ เมื่อคอลัมน์มีค่าซ้ำกัน SELECT DISTINCT จะส่งคืนเฉพาะค่าที่ไม่ซ้ำกันเท่านั้นping แต่ละกลุ่มของรายการที่ซ้ำกันจะแสดงอยู่ในแถวเดียว วิธีนี้มีประโยชน์เมื่อคุณต้องการรายการที่ไม่ซ้ำกัน เช่น เมืองของลูกค้าที่ไม่ซ้ำกัน หรือหมวดหมู่ผลิตภัณฑ์ที่ไม่ซ้ำกัน
คำสั่ง DISTINCT จะประเมินคอลัมน์ทั้งหมดที่ระบุไว้ในคำสั่ง SELECT เพื่อตัดสินว่าแถวนั้นเป็นแถวที่ไม่ซ้ำกันหรือไม่ PostgreSQL นอกจากนี้ยังมีคำสั่ง DISTINCT ON ซึ่งจะส่งคืนแถวแรกสำหรับแต่ละค่าที่ไม่ซ้ำกันของนิพจน์ที่ระบุ คุณสามารถใช้ DISTINCT ร่วมกับ ORDER BY เพื่อควบคุมว่าแถวใดจะปรากฏ และใช้ร่วมกับ LIMIT เพื่อจำกัดจำนวนผลลัพธ์
PostgreSQL เลือกคำสั่งใน SQL Shell
ขั้นตอน 1) เรามีตารางชื่อ “tutorials” ซึ่งประกอบด้วย 2 คอลัมน์ คือ “id” และ “tutorial_name” เรามาลองเรียกดูข้อมูลจากตารางนี้กัน โดยใช้คำสั่งต่อไปนี้:
SELECT id,tutorial_name FROM tutorials;
หมายเหตุ: ใช้คำสั่ง \c เพื่อเชื่อมต่อกับฐานข้อมูลที่มีตารางที่คุณต้องการสอบถาม ในกรณีของเรา เราเชื่อมต่อกับฐานข้อมูล guru99
ขั้นตอน 2) หากคุณต้องการดูคอลัมน์ทั้งหมดในตารางใดตารางหนึ่ง คุณสามารถใช้เครื่องหมายดอกจัน (*) เป็นตัวอักษรแทนค่าได้ ซึ่งหมายความว่ามันจะตรวจสอบทุกความเป็นไปได้ และผลลัพธ์ที่ได้คือคอลัมน์ทั้งหมด
SELECT * FROM tutorials;
จะแสดงบันทึกทั้งหมดของตารางบทช่วยสอน
ขั้นตอน 3) คุณสามารถใช้ส่วนคำสั่ง ORDER เพื่อเรียงลำดับข้อมูลในตารางตามคอลัมน์ใดคอลัมน์หนึ่งได้ ส่วนคำสั่ง ORDER จัดระเบียบข้อมูลตามลำดับ A ถึง Z
SELECT * FROM tutorials ORDER BY id;
คุณสามารถเรียงลำดับจาก Z ถึง A ได้โดยใช้ "DESC" หลังคำสั่ง "ORDER BY"
SELECT * FROM tutorials ORDER BY id DESC;
ขั้นตอน 4) SELECT DISTINCT ใน PostgreSQL clause สามารถใช้เพื่อลบแถวที่ซ้ำกันออกจากผลลัพธ์ โดยจะเก็บหนึ่งแถวสำหรับรายการซ้ำแต่ละกลุ่ม
Syntax: SELECT DISTINCT column_1 FROM table_name;
มาลองค้นหาค่า ID ที่ไม่ซ้ำกันจากตารางใน PostgreSQL โดยใช้คำสั่งค้นหาแบบ Distinct กันครับ PostgreSQL:
SELECT DISTINCT(id) FROM tutorials;
ขั้นตอน 5) คุณสามารถใช้ PostgreSQL คำสั่ง LIMIT ใช้เพื่อจำกัดจำนวนระเบียนที่ได้จากคำสั่ง SELECT
SELECT * FROM tutorials LIMIT 4;
PostgreSQL คำสั่ง Select ใน pgAdmin
ขั้นตอน 1) ในโครงสร้างอ็อบเจ็กต์:
- คลิกขวาที่ตาราง
- เลือกสคริปต์
- คลิกที่ เลือกสคริปต์ (SELECT SCRIPT)
ขั้นตอน 2) ในช่องด้านขวา:
- แก้ไขคำสั่ง SELECT หากจำเป็น
- คลิกที่ไอคอนสายฟ้า
- สังเกตผลลัพธ์
แตกต่างกันในหลายคอลัมน์
คำสั่ง SELECT DISTINCT สามารถใช้กับคอลัมน์มากกว่าหนึ่งคอลัมน์ได้ เมื่อคุณระบุคอลัมน์หลายคอลัมน์หลังจาก DISTINCT PostgreSQL ระบบจะถือว่าการรวมกันของคอลัมน์เหล่านั้นเป็นหน่วยเดียวกัน และจะลบแถวที่มีการซ้ำกันของการรวมกันทั้งหมดนั้นออกไป
Syntax: SELECT DISTINCT column_1, column_2 FROM table_name;
ตัวอย่างเช่น หากต้องการดึงข้อมูลชุดค่าผสมที่ไม่ซ้ำกันของ tutorial_name และ id จากตาราง tutorials:
SELECT DISTINCT tutorial_name, id FROM tutorials;
ในกรณีนี้ แถวจะถูกลบออกก็ต่อเมื่อทั้ง tutorial_name และ id ตรงกับแถวอื่น หากสองแถวมี tutorial_name เหมือนกัน แต่มีค่า id ต่างกัน ทั้งสองแถวจะยังคงอยู่ เพราะการรวมกันยังคงเป็นเอกลักษณ์ พฤติกรรมนี้สำคัญมากที่ต้องจำไว้: คำสั่ง DISTINCT จะไม่ลบข้อมูลซ้ำในคอลัมน์เดียวเมื่อเลือกหลายคอลัมน์ แต่จะลบข้อมูลซ้ำในชุดคอลัมน์ที่เลือกทั้งหมดพร้อมกัน
DISTINCT กับ GROUP BY ใน PostgreSQL
ทั้งคำสั่ง DISTINCT และ GROUP BY สามารถลบค่าที่ซ้ำกันได้ แต่มีจุดประสงค์การใช้งานที่แตกต่างกัน:
- DISTINCT ฟังก์ชันนี้จะส่งคืนเฉพาะแถวที่ไม่ซ้ำกันจากผลลัพธ์ และเหมาะที่สุดเมื่อคุณต้องการรายการที่ปราศจากข้อมูลซ้ำซ้อน
- จัดกลุ่มตาม จัดกลุ่มแถวที่มีค่าร่วมกันเพื่อให้คุณสามารถใช้ฟังก์ชันการรวม เช่น COUNT, SUM หรือ AVG ให้กับแต่ละกลุ่ม
ตัวอย่างเช่น คำสั่งค้นหาทั้งสองด้านล่างนี้จะส่งคืนค่ารหัสที่ไม่ซ้ำกันทั้งคู่:
SELECT DISTINCT id FROM tutorials; SELECT id FROM tutorials GROUP BY id;
ใช้ DISTINCT สำหรับรายการค่าที่ไม่ซ้ำกัน และใช้ GROUP BY เมื่อคุณต้องการคำนวณเพิ่มเติมสำหรับแต่ละกลุ่ม เช่น การนับจำนวนบทเรียนที่ใช้ ID เดียวกัน ในการค้นหาข้อมูลแบบง่ายๆ ตัววางแผนมักแสดงประสิทธิภาพที่คล้ายคลึงกันสำหรับทั้งสองวิธี แต่จำเป็นต้องใช้ GROUP BY เมื่อมีการรวมข้อมูลเกิดขึ้น
แผ่นโกง
SELECT [column names] FROM [table_name] [clause]
ต่อไปนี้คือพารามิเตอร์ต่างๆ:
- ชื่อคอลัมน์: ชื่อของคอลัมน์ที่คุณต้องการดึงค่าออกมา
- จาก: ส่วน FROM กำหนดตารางต้นทางอย่างน้อยหนึ่งตารางสำหรับคำสั่ง SELECT
- table_name: ชื่อของตารางที่มีอยู่แล้วที่คุณต้องการเรียกดูข้อมูล
ข้อต่างๆ ได้แก่
| คำสั่ง | Descriptไอออน |
|---|---|
| * | ดึงข้อมูลสำหรับทุกแถวในตาราง |
| DISTINCT | แตกต่างใน PostgreSQL ช่วยให้คุณลบรายการซ้ำออกจากผลลัพธ์ |
| สั่งโดย | เรียงลำดับแถวตามคอลัมน์ ลำดับการเรียงเริ่มต้นคือจากน้อยไปมาก หากต้องการเรียงลำดับจากมากไปน้อย ให้ใช้คำสั่ง DESC |
| LIMIT | ขีดจำกัดใน PostgreSQL จำกัดจำนวนระเบียนที่ส่งคืนโดยแบบสอบถาม |








