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

| Database-SQL | 889 | 501 วันที่แล้ว
วันนี้ผมต้องการรู้ว่า ข้อมูลใดบ้างที่ซ้ำกัน และข้อมูลไหนบ้างที่ไม่ซ้ำกันใน 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
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]