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

| Database-SQL | 1350 | 559 วันที่แล้ว
วันนี้ผมต้องการรู้ว่า ข้อมูลใดบ้างที่ซ้ำกัน และข้อมูลไหนบ้างที่ไม่ซ้ำกันใน 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
758 D
[1]
Android
649 D
[40]
Animal
742 D
[1]
Apache
758 D
[2]
[10]
[2]
CMS-SMF
759 D
[1]
[3]
[1]
Database
758 D
[4]
[1]
Docker
654 D
[1]
Fruit
742 D
[2]
Git
545 D
[5]
HTML
545 D
[1]
Housework
747 D
[2]
IT
739 D
[2]
Imacro
759 D
[17]
Java
542 D
[1]
Java-Web
649 D
[1]
[2]
MQL5
571 D
[3]
MakeMoney
544 D
[18]
[1]
Maven
543 D
[1]
Mobile
756 D
[1]
NodeJs
544 D
[3]
Physics
540 D
[4]
PugJS
544 D
[2]
React
554 D
[132]
Science
741 D
[1]
[2]
Spring
543 D
[7]
[2]
[1]
[4]
Ubuntu
709 D
[1]
WebLogic
740 D
[4]