SQL Query ข้อมูลที่ซ้ำกันใน Database

| Database-SQL | 2020 | 683 วันที่แล้ว
วันนี้ผมต้องการรู้ว่า ข้อมูลใดบ้างที่ซ้ำกัน และข้อมูลไหนบ้างที่ไม่ซ้ำกันใน Database

เรามาดูตัวอย่างกันเลยครับ ซึ่งในตัวอย่างนี้ผมได้ใช้ PostgreSQL ในการแสดงตัวอย่างนะครับ

ก่อนอื่นเลย ผมมีตัวอย่าง ข้อมูลในตาราง howtoclicks_log ดังรูปด้านล่าง

จากนั้นผมต้องการหาว่ามีข้อมูลที่ คอลัมน์ log_type, log_programe_id ไหนบ้างที่ซ้ำกัน ผมเลยใช้คำสั่ง ตามตัวอย่างด้านล่าง
select log_type, log_programe_id
from howtoclicks_log
group by log_type, log_programe_id
having count(*) > 1
ใช้ group by log_type, log_programe_id เพื่อหาข้อมูลสองคอลัมน์นี้ที่ซ้ำกัน จากนั้นใช้ having count(*) > 1 เพื่อหาข้อมูลที่ซ้ำกัน เพราะข้อมูลที่ซ้ำกันก็ต้องมีมากกว่า 1 จากนั้นผมอยากได้ข้อมูลที่ไม่ซ้ำกันละจะทำไง ผมเลยใช้คำสั่ง ตามตัวอย่างด้านล่าง
select log_type, log_programe_id
from howtoclicks_log
group by log_type, log_programe_id
having count(*) = 1
ก็แน่ละ ก็ใช้ count(*) = 1 สิ เพราะถ้าไม่ซ้ำกันก็แสดงว่ามีแค่ row เดียวก็เท่ากับ 1 ถ้าอยากดูข้อมูลที่ทั้งซ้ำกันและไม่ซ้ำกันละ และอยากรู้ว่ามีซ้ำกันกี่ข้อมูลละทำไง ก็ต้องตัวอย่างนี้สิ
select log_type, log_programe_id, count(*)
from howtoclicks_log
group by log_type, log_programe_id
ก็เอา having แล้วก็ทำการ select count(*) ไปก็ได้ละ ลองนำไปปรับใช้กันดูครับ
comments

[1]
Adobe-PDF
882 D
[1]
Android
773 D
[40]
Animal
866 D
[1]
Apache
882 D
[2]
[10]
[2]
CMS-SMF
883 D
[1]
[3]
[1]
Database
882 D
[4]
[1]
Docker
778 D
[1]
Fruit
866 D
[2]
Git
669 D
[5]
HTML
669 D
[1]
Housework
871 D
[2]
IT
863 D
[2]
Imacro
883 D
[17]
Java
666 D
[1]
Java-Web
773 D
[1]
[2]
MQL5
695 D
[3]
MakeMoney
668 D
[18]
[1]
Maven
667 D
[1]
Mobile
880 D
[1]
NodeJs
668 D
[3]
Physics
664 D
[4]
PugJS
668 D
[2]
React
678 D
[132]
Science
865 D
[1]
[2]
Spring
667 D
[7]
[2]
[1]
[4]
Ubuntu
832 D
[1]
WebLogic
864 D
[4]