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

CONNECT BY . का उपयोग करके पदानुक्रमित क्वेरी के प्रत्येक स्तर पर गणना/योग प्राप्त करना

यह बहुत सीधा है:

09:38:54 example@sqldat.com_xe> l                                      
  1  select sys_connect_by_path(dp.dir_name, '/') path    
  2         ,(select count(file_id)                       
  3             from dirs dc                              
  4                  ,files f                             
  5            where f.dir_id(+) = dc.dir_id              
  6          connect by prior dc.dir_id = dc.parent_dir_id
  7            start with dc.dir_id = dp.dir_id           
  8          ) count                                      
  9    from dirs dp                                       
 10    connect by prior dp.dir_id = dp.parent_dir_id      
 11*   start with dp.parent_dir_id is null                
09:38:55 example@sqldat.com_xe> /                                      

PATH                                COUNT                 
------------------------------ ----------                 
/ROOT                                   6                 
/ROOT/DIR1_1                            4                 
/ROOT/DIR1_1/DIR2_1                     1                 
/ROOT/DIR1_1/DIR2_2                     3                 
/ROOT/DIR1_2                            2                 

5 rows selected.                                          

Elapsed: 00:00:00.02                                      


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle पॉज़िटिव के पीछे देखें

  2. ANTLR4 के साथ शामिल PL/SQL व्याकरण का परीक्षण कैसे किया जा सकता है?

  3. PLS-00306:'OUTPUT_ARRAY' पर कॉल में गलत संख्या या तर्कों के प्रकार

  4. ओरेकल - उपयोगकर्ता को एकाधिक पंक्तियों को सम्मिलित करने के लिए कैसे बाध्य करें

  5. ओरेकल में अधिकतम (पंक्तिबद्ध) क्या है?