Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मैं एक संग्रहीत रिकॉर्ड तालिका में डुप्लिकेट प्रविष्टियों को कैसे साफ़ कर सकता हूँ?

CHECKSUM() का उपयोग करें यह देखने के लिए कार्य करता है कि क्या डेटा समान है, हर एक कॉलम की जाँच किए बिना।

मान लें कि आपके पास कुछ ऐसा है:

create table #t (log_id int, c varchar(10), d int, log_date date)

insert #t values
(1, 'aaaaa', 1, '20140101'),
(1, 'aaaaa', 1, '20140102'),
(1, 'aaaaa', 1, '20140103'),
(1, 'bbbbb', 1, '20140104'),
(2, 'ccc', 10, '20140103'),
(2, 'cdd', 10, '20140105')

दूसरी और तीसरी पंक्ति में डेटा डुप्लीकेट हैं। डेटा को साफ करने के लिए, इस कथन को निष्पादित करें:

with x as (
select *, row_number() over(partition by log_id, checksum(log_id, c, d) order by log_date) as rn
from #t
)
delete x where rn > 1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. फर्जी विदेशी कुंजी बाधा विफल

  2. कैसे एक php समारोह के अंदर mysql डाल करने के लिए?

  3. क्या मुझे MySQL लगातार कनेक्ट का उपयोग करना चाहिए?

  4. वीएस 2019 और MySQL एंटिटी फ्रेमवर्क डुप्लिकेट डेटाबेस नाम

  5. मैं एक SQL फ़ाइल को कैसे निष्पादित कर सकता हूँ, और परिणामों को एक कमांड में एक txt फ़ाइल में कैसे सहेज सकता हूँ?