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

रैंक विंडो फ़ंक्शन का उपयोग करके अद्यतन पोस्टग्रेज करें

चूंकि आपके पास एक अद्वितीय कुंजी नहीं है, ctid . का उपयोग करें :

update medias m
    set sort_order = new_sort_order
    from (
        select 
            ctid,
            owner_user_id, 
            sort_order, 
            row_number() over w as new_sort_order 
        from medias 
        where visible
        window w as (partition by owner_user_id order by sort_order asc, created_at asc)
    ) s
    where m.ctid = s.ctid;

ध्यान दें, row_number() rank() . से बेहतर हो सकता है जैसा कि पहला कभी डुप्लीकेट नहीं देता है।



  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. जब मैं दो में शामिल होता हूं तो COUNT का परिणाम दोगुना क्यों होता है?

  3. MacOS 10.9.5 . पर Psycopg2 स्थापित करने में त्रुटि

  4. SqlAlchemy:एक सरणी वाले लंबाई json फ़ील्ड को क्वेरी करना

  5. पॉइंट टेक्स्ट को ज्योमेट्री में कैसे बदलें