อีกหนึ่งวิธีในการกำจัดข้อมูลที่ซ้ำซ้อนกันในตาราง

ถ้าคุณมีตารางข้อมูลอยู่ และรู้ว่ามีบางแถวที่มีข้อมูลซ้ำซ้อนกัน ทางไหนเป็นวิธีที่ดีที่จะสามารถหาและกำจัดแถวที่มีข้อมูลซ้ำนี้ออกไปจากตารางของฐานข้อมูล Oracle ?

อีกวิธีหนึ่งที่เป็นไปได้ในการกำจัดแถวที่ซ้ำซ้อนกันคือการใช้คำสั่ง select distinct และใส่ข้อมูลที่ได้ลงในตารางใหม่

 

จากที่เราสามารถตรวจสอบหาข้อมูลแถวที่มีข้อมูลซ้ำซ้อนกันได้โดยใช้คำสั่ง select ดังนี้

SQL> select a,b,count(*) from test group by a,b;

ผลลัพธ์ที่ได้

A           B COUNT(*)
———- ———- ———-
1           2       259
2           2           5
3           0           1

จากตัวอย่างในตาราง test นี้ที่กำหนดไว้ว่าค่าในคอลัมภ์ a และ b จะต้องมีค่าไม่ซ้ำ ซึ่งผลลัพธ์ที่ปรากฏคือ มีข้อมูลซ้ำ 258 แถว และ 4 แถว

 

เรามาเริ่มต้นกำจัดข้อมูลซ้ำซ้อนอีกวิธีกันเลย

 

การหาแถวข้อมูลที่ไม่ซ้ำซ้อนกัน

เราสามารถหาข้อมูลที่ไม่ซ้ำซ้อนกันได้โดยใช้คำสั่ง select distinct ดังนี้

SQL> select distinct * from test;

ผลลัพธ์ที่ได้

         A           B
———- ———-
          1           2
          2           2
          3           0

 

สร้างตารางใหม่ชั่วคราวเพื่อเก็บผลลัพธ์ที่ได้

SQL> create table new_test as (select distinct * from test);

 

ตรวจสอบผลลัพธ์ที่ได้ในตารางชั่วคราวนี้

SQL> select * from new_test;

ผลลัพธ์ที่ได้

         A           B
———- ———-
          1           2
          2           2
          3           0 

 

ทำการลบข้อมูลในตาราง test ทั้งหมด

SQL> truncate table test;

Table truncated.

 

ทำการเพิ่มข้อมูลกลับไปยังตาราง test จากตารางชั่วคราว    

SQL> insert into test (select * from new_test);

3 rows created.

 

ทำการลบตารางข้อมูลชั่วคราวทิ้ง

SQL> drop table new_test;

Table dropped.

 

ตรวจสอบกันอีกครั้งว่าข้อมูลยังซ้ำกันอีกหรือไม่โดยใช้คำสั่ง select ดังนี้

SQL> select a,b,count(*) from test group by a,b;

ผลลัพธ์ที่ได้

A           B COUNT(*)
———- ———- ———-
1           2           1
2           2           1
3           0           1

 

นี่ก็เป็นอีกหนึ่งวิธีในการกำจัดแถวที่มีข้อมูลซ้ำซ้อนกันในตาราง แต่เพื่อป้องกันการเกิดการซ้ำซ้อนของข้อมูลเหล่านี้ ขอย้ำอย่าลืมใช้ unique constraints หรือ primary key ช่วยได้ ปัญหาข้อมูลซ้ำซ้อนแบบนี้ก็จะไม่มีทางเกิดขึ้นให้เกิดความปวดหัวได้อีก

Share the Post:

Related Posts

ทำความรู้จักกับ Outlook บนเว็บ

Post Views: 10 Outlook เป็นเครื่องมือจัดการอีเมลและปฏิทินที่ทรงพลัง ซึ่งช่วยให้คุณมีระเบียบและเพิ่มความสามารถในการทำงาน ด้วยอินเทอร์เฟซที่ใช้งานง่าย คุณสามารถจัดการกล่องขาเข้าของคุณ นัดหมาย และทำงานร่วมกับเพื่อนร่วมงานได้อย่างง่ายดาย ฟีเจอร์ที่แข็งแกร่งของ Outlook รวมถึงแม่แบบอีเมลที่ปรับแต่งได้ ความสามารถในการค้นหาขั้นสูง และการผสานรวมที่ไร้รอยต่อกับแอปพลิเคชัน Microsoft Office อื่นๆ ไม่ว่าคุณจะเป็นมืออาชีพที่ยุ่งอยู่หรือเป็นนักเรียนที่ต้องจัดการกับภารกิจหลายอย่าง Outlook

Read More

[บันทึกกันลืม] JupyterHub Authenticated with OIDC

Post Views: 39 ต่อจากตอนที่แล้ว [บันทึกกันลืม] JupyterHub ด้วย Docker คราวนี้ ถ้าต้องการให้ ยืนยันตัวตนด้วย OpenID เช่น PSU Passport เป็นต้น ก็ให้ทำดังนี้ ในไฟล์ jupyterhub_config.py ใส่

Read More