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

Hitungan kumulatif Oracle menggunakan SYS_CONNECT_BY_PATH

Semata-mata dengan coba-coba atas data sampel SQL Fiddle Anda, ini adalah kueri yang mengembalikan data yang Anda harapkan:

SELECT SYS_CONNECT_BY_PATH(firmware_version, '/') path_,
  firmware_version,
  device_count,
  dmc_id,
  charging_group_id,
  IMAGE_PREREQUISITE,
  (SELECT SUM(device_count)
  FROM DM_TEMP_SUMMING_DVC_BY_FW t2
  START WITH t1.firmware_version = t2.firmware_version
        and T1.dmc_id = T2.dmc_id
        and T1.charging_group_id = T2.charging_group_id
  CONNECT BY nocycle PRIOR firmware_version=image_prerequisite and prior dmc_id = dmc_id and prior charging_group_id = charging_group_id
  ) sum_device
FROM DM_TEMP_SUMMING_DVC_BY_FW t1
START WITH image_prerequisite IS NULL
CONNECT BY nocycle PRIOR firmware_version = image_prerequisite
    and prior dmc_id = dmc_id
    and prior charging_group_id = charging_group_id

Catatan: Ya, charging_group_id dan dmc_id sangat penting untuk hasil yang Anda harapkan, seperti yang disebutkan krokodilko dengan benar dalam komentarnya di atas.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 penawaran teratas dengan jumlah semua penawaran

  2. PLS-00103:Menemukan simbol "end-of-file" di blok pembaruan sederhana

  3. Pemicu Oracle yang memeriksa kendala setiap bulan

  4. Baris SQL menjadi Kolom

  5. Perbarui hitungan hari sebelumnya menggunakan fungsi LAG di ORACLE