sql >> データベース >  >> RDS >> Oracle

CONNECT BYを使用して、階層クエリの各レベルでカウント/合計を取得する

    これは非常に簡単です:

    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. プロシージャまたはトリガー内にmysqlイベントを作成するにはどうすればよいですか?

    2. あるSRIDから別のSRIDにジオメトリを変換/投影します

    3. MaxMindのGeoLite2をMySQLにインポートする

    4. SQL:特定の日付の時間範囲で作成されたレコードを取得します