如何在 sql 中找到 parent 和 child 关系

How to find the parent and child relation in sql

我有如下数据并试图获得 parent 所用时间的总和。

输入

ID_P    ID_C    SLA FL
1       2     0.2   Y
2       3     0.5   N
3       4     0.5   N
8       9     1.5   Y
9       10    0.1   N
10            0.2   N

预期产出

ID_P    Sum(SLA)
1       1.2
8       1.8

有人可以帮我 SQL。

您可以使用递归查询。这个想法是从 parent 行开始 - 据我了解您的数据,这些行用 fl 列标识。然后您可以点击 children 的链接。最后一步是聚合:

with cte as (
    select idp_p, id_c, sla from mytable where fl = 'Y'
    union all
    select c.id_p, t.id_c, t.sla
    from cte c
    inner join mytable t on t.id_p = c.id_c
)
select id_p, sum(sla) as sum_sla from cte group by id_p