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

दोहराए गए समूहों के साथ समूह पर वृद्धि पंक्ति संख्या

आप समूहों को परिभाषित करने के लिए पंक्ति संख्याओं के अंतर का उपयोग कर सकते हैं:

select Shade, count(*) as amount
from (select t.*,
             row_number() over (order by level) as seqnum,
             row_number() over (partition by shade order by level) as seqnum_s
      from t
     ) t
group by Shade, (seqnum - seqnum_s);

यह समझाना थोड़ा कठिन है कि यह क्यों काम करता है। यदि आप सबक्वेरी के परिणामों को देखते हैं, तो यह स्पष्ट हो जाता है कि दोनों 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. तालिका निर्भरताओं के लिए रिकर्सिव क्वेरी उतनी ही रिकर्स नहीं कर रही है जितनी मैं चाहूंगा

  2. एक्सएमएल से क्वेरी डेटा

  3. यूनिक्स टाइमस्टैम्प को दिनांक और दिनांक समय में कनवर्ट करें - SQL/ORACLE

  4. sqlplus से pl/sql के भीतर गतिशील निष्पादन आउटपुट प्रदर्शित करें

  5. Oracle में अंतर b/w TIMESTAMP प्रारूप मान कैसे खोजें?