根据子项选择父记录,反之亦然,根据缺少的ind

问题描述

仅当missing ind标志设置为1时,我才需要选择父记录或子记录。

这是示例数据。

父项或子项missing_ind都将设置为1,并且仅当子项或父项missing ind标志设置为1时,我才想选择所有记录。

查询确实返回所有3条记录,但我无法添加is_missing_ind = 1检查,因为它仅返回子记录。

select * from sc_connect connect1
where 
exists( select * from sc_connect connect2 where connect1.connection_id = connect2.original_connection_id and connect1.type = connect2.original_type)

解决方法

WITH
    summary AS
(
    SELECT
        s.*,SUM(is_missing_ind) OVER (PARTITION BY original_connection_id) AS group_is_missing_ind
    FROM
        sc_connect s
)
SELECT
    *
FROM
    summary
WHERE 
    group_is_missing_ind > 0