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

Oracle विभाजन अनुक्रम

क्या वास्तविक आवश्यकता है कि द्वितीयक अनुक्रम अंतराल मुक्त हो? यदि ऐसा है, तो आपके पास एक विशाल क्रमांकन/मापनीयता समस्या है।

यदि आपको मानव उपभोग के लिए एक अंतर-मुक्त अनुक्रम प्रस्तुत करने की आवश्यकता है, तो आप एक वास्तविक अनुक्रम (या उस मामले के लिए एक टाइमस्टैम्प) का उपयोग कर सकते हैं, जैसा कि निक पियरपोंट स्केलेबिलिटी का सुझाव देते हैं और संरक्षित करते हैं, आप विश्लेषणात्मक कार्यों का उपयोग कर सकते हैं।

डेटासेट (t1):

 ID_PERSON SEQUENCE_ID
---------- -----------
         1           1
         2           2
         3           3
         1           4
         1           5
         1           6
         2           7
         3           8
         1           9

एसक्यूएल:

select * 
  from 
  (select id_person, 
          sequence_id as orig_sequence_id,         
          rank () 
            over (partition by id_person 
                  order by sequence_id) 
            as new_sequence_id
     from t1
  )
 order by id_person, new_sequence_id;

परिणाम:

ID_PERSON  ORIG_SEQUENCE_ID NEW_SEQUENCE_ID
---------- ---------------- ---------------
         1                1               1
         1                4               2
         1                5               3
         1                6               4
         1                9               5
         2                2               1
         2                7               2
         3                3               1
         3                8               2


  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. Oracle स्वायत्त लेनदेन उदाहरण

  3. चेकर रन

  4. टाइमस्टैम्प में दिन जोड़ें

  5. LAST_DAY () Oracle में फ़ंक्शन