Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Skumulowana liczba Oracle przy użyciu SYS_CONNECT_BY_PATH

Wyłącznie z próbą i błędami w przykładowych danych SQL Fiddle, to zapytanie zwraca oczekiwane dane:

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

Uwaga: Tak, charging_group_id i dmc_id są bardzo ważne dla twojego oczekiwanego rezultatu, jak krokodilko poprawnie wspomniał w swoim powyższym komentarzu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Właściwy sposób na ustawienie ORACLE_HOME?

  2. sesja/menedżer podmiotu jest zamknięta

  3. sposoby na uniknięcie globalnych tabel tymczasowych w Oracle

  4. wyrocznia | usuń duplikaty rekordów

  5. przyznaj SELECT dostęp do v$session innym użytkownikom