ตัวอย่าง PostgreSQL SQL SELECT DISTINCT Statement

| Database-SQL Database-PostgreSQL | 840 | 502 วันที่แล้ว
สวัสดีครับ บทความนี้เราจะมา แสดงตัวอย่างเล็ก ๆ น้อย ๆ ของ SQL SELECT DISTINCT Statement กันครับ

- SELECT DISTINCT จะ return ค่าที่แตกต่างกันเท่านั้น
- SELECT DISTINCT จะกำจัดข้อมูลที่ซ้ำกันออกไปจากผลลัพธ์
- DISTINCT สามารถใช้ร่วมกัน COUNT, AVG, MAX, และอื่น ๆ

The SQL SELECT DISTINCT syntax

Syntax ทั่ว ๆ ไป
SELECT DISTINCT column-name FROM table-name
ตัวอย่าง Syntax ที่ใช้ร่วมกับ count
SELECT COUNT (DISTINCT column-name) FROM table-name
เรามาดูตัวอย่างกันเลยครับ ซึ่งในตัวอย่างนี้ผมได้ใช้ PostgreSQL ในการแสดงตัวอย่างนะครับ ก่อนอื่นเลย ผมมีตัวอย่าง ข้อมูลในตาราง howtoclicks_log ดังรูปด้านล่าง
ผมจะลองใช้ SELECT DISTINCT เพื่อหาว่าในตาราง howtoclicks_log นั้นมี log_type ชนิดไหนบ้าง ผมเลยใช้คำสั่ง
select distinct log_type from howtoclicks_log
จากนั้นลองใช้คำสั่ง SELECT DISTINCT ร่วมกับ count ดูครับ โดยใช้คำสั่ง
select count(distinct log_type) from howtoclicks_log
เมื่อลองรันทั้งสองคำสั่งแล้วจะได้ผลลัพธ์ดังด้านล่าง
จากตัวอย่าง อันดับแรกเราใช้ distinct ร่วมกับ คอลัมน์ log_type เพื่อดูว่าข้อมูลในคอลัมน์นี้ที่ไม่ซ้ำกันมีอะไรบ้าง เราก็จะได้ 2 ข้อมูลคือ "warning" กับ "error" จากนั้นเราลองนำไปใช้ร่วมกับ count เพื่อนับจำนวนข้อมูลของคอลัมน์นี้ที่ไม่ซ้ำกันดู ก็จะได้ผลลัพธ์เป็น 2 นั่นเอง เอะ!! เราสามารถ DISTINCT หลาย ๆ คอลัมน์ได้ไหมนะ ผมจะหาว่า ใน program_id แต่ละ id นั้นน่ะ มี log_type ชนิดใดบ้าง ผมเลยใช้คำสั่ง
select distinct log_type, log_programe_id from howtoclicks_log
ซึ่งจะได้ผลลัพธ์
จะเห็นว่าก็ใช้ได้เหมือนกัน ซึ่งก็ได้ผลลัพธ์เป็นข้อมูลที่ไม่ซ้ำกันของ 2 column นั่นคือ log_type กับ log_programe_id แค่นี้ผมก็สามารถรู้ว่าแต่ละ program_id นั้นเกิด error ชนิดใดบ้าง โดยจะได้ข้อมูลที่ไม่ซ้ำกันของ แต่ละ program_id และ log_type
comments

[1]
Adobe-PDF
700 D
[1]
Android
591 D
[40]
Animal
684 D
[1]
Apache
700 D
[2]
[10]
[2]
CMS-SMF
701 D
[1]
[3]
[1]
Database
700 D
[4]
[1]
Docker
595 D
[1]
Fruit
684 D
[2]
Git
487 D
[5]
HTML
487 D
[1]
Housework
689 D
[2]
IT
681 D
[2]
Imacro
701 D
[17]
Java
484 D
[1]
Java-Web
591 D
[1]
[2]
MQL5
513 D
[3]
MakeMoney
486 D
[18]
[1]
Maven
485 D
[1]
Mobile
698 D
[1]
NodeJs
486 D
[3]
Physics
482 D
[4]
PugJS
486 D
[2]
React
496 D
[132]
Science
683 D
[1]
[2]
Spring
485 D
[7]
[2]
[1]
[4]
Ubuntu
650 D
[1]
WebLogic
682 D
[4]