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

Số lượng tích lũy Oracle sử dụng SYS_CONNECT_BY_PATH

Chỉ với một thử nghiệm và lỗi đối với dữ liệu mẫu SQL Fiddle của bạn, đây là truy vấn trả về dữ liệu mong đợi của bạn:

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

Lưu ý: Có, charging_group_iddmc_id rất quan trọng đối với kết quả mong đợi của bạn, như krokodilko đã đề cập chính xác trong nhận xét ở trên của anh ấy.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách lưu trữ thời gian duy nhất; không phải ngày và giờ?

  2. COMMIT để làm gì?

  3. ORA-00932:kiểu dữ liệu không nhất quán:mong đợi - có CLOB

  4. SELECT * FROM TABLE (hàm pipelined):tôi có thể chắc chắn về thứ tự của các hàng trong kết quả không?

  5. Làm cách nào để biết khi nào một thủ tục đã lưu trữ được sửa đổi hoặc biên dịch lần cuối trong Oracle?