sql >> Databáze >  >> RDS >> Oracle

Získání počtů/součtů na každé úrovni hierarchického dotazu pomocí CONNECT BY

Tohle je docela jednoduché:

09:38:54 [email protected]_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 [email protected]_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. Jak mohu nastavit schéma databáze, kde existují dva souběžné vztahy mnoho-mnoho?

  2. Jak zvýšit hodnotu v MySQL pomocí PHP mysqli

  3. Jak mohu vrátit řetězec CSV z typu tabulky PL/SQL v Oracle

  4. GetOracle Decimal Únik paměti