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

नवीनतम प्रविष्टियों को छोड़कर, Oracle SQL में डुप्लिकेट पंक्तियों को हटाएं

पंक्ति आईडी का उपयोग करने का एक तरीका यहां दिया गया है:

delete from transaction
where 
    last_update = date '2020-03-01'
    and rowid in (
        select rid
        from (
            select 
                rowid rid, 
                row_number() over(partition by par_num ,tran_num order by last_update desc) rn
            from transaction                
        ) t
        where rn > 1
    )

सबक्वेरी उन पंक्तियों के लिए पंक्ति आईडी की सूची तैयार करती है जो उनके समूह में नवीनतम नहीं हैं (अर्थात समान par_num ,tran_num वाले सभी रिकॉर्ड) ) - प्रति समूह नवीनतम रिकॉर्ड की पहचान row_number() . का उपयोग करके की जाती है . बाहरी क्वेरी बस उन पंक्तियों को हटा देती है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या मैं विंडो फ़ंक्शन के साथ SQL क्वेरी में समूह बना सकता हूं?

  2. oracle systimestamp (sysdate) से मिलीसेकंड

  3. SQL*प्लस CSV निर्यात SQL डेवलपर की तुलना में धीमा है

  4. स्टैंडबाय पर लॉगिंग करने में त्रुटि 1033 प्राप्त हुई

  5. DBD::Oracle स्थापना त्रुटि उत्पन्न कर रही है