Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle SQL Hierarchical Query:Meratakan Hirarki dan Melakukan Agregasi

Saran Podiluska bagus. Jika Anda memiliki Oracle 11g R2, ekspresi tabel umum adalah cara yang harus dilakukan. Sifat rekursif dari sintaks baru akan memungkinkan Anda untuk membuang sys_connect_by_path dikombinasikan dengan instr , yang akan sangat merusak kinerja Anda.

Coba ini:

select
  child,
  sum(total_quantity) total_quantity
from (
  with h (parent, child, isleaf, quantity, total_quantity) as (
    select 
      parent,
      child,
      isleaf,
      quantity,
      quantity total_quantity
    from
      itemhier
    where
      parent = 'ASSY001' 
    union all
    select
      ih.parent,
      ih.child,
      ih.isleaf,
      ih.quantity,
      ih.quantity * h.total_quantity total_quantity
    from
      itemhier ih
    join 
      h on h.child = ih.parent
  )
  select * from h
  where isleaf = 1
)
group by child;

Berikut sqlfiddlenya:http://sqlfiddle.com/#!4/9840f/6



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-01008:tidak semua variabel terikat, ketika semuanya terikat

  2. Apakah ada cara lain untuk membuat batasan selama pembuatan tabel SQL?

  3. Bagaimana Cara Mengekspor-Impor Database di Oracle 11g (Application Express Edition)?

  4. Bagaimana cara mengembalikan data dalam tabel Oracle?

  5. Cara Mengekspor Hasil Kueri ke File CSV di SQL Developer (Oracle)