Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Nhận số lượng / tổng số ở mỗi cấp của truy vấn phân cấp bằng CONNECT BY

Cái này khá đơn giản:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tự động tạo danh tính cho cơ sở dữ liệu Oracle thông qua khung Entity?

  2. Đặt lại trình tự thành một giá trị cụ thể

  3. Làm cách nào để trả về danh sách các giá trị thay vì một chuỗi khi truy vấn cơ sở dữ liệu oracle bằng XPath?

  4. Chế độ xem vật chất hóa - Oracle / Dữ liệu không cập nhật

  5. Sử dụng chuỗi trong thủ tục lưu trữ Oracle