查找组级别上与组内所有其他记录连接的记录

  • 本文关键字:记录 其他 连接 查找 sql hana
  • 更新时间 :
  • 英文 :


我有一个场景,我必须在每个组中找到连接到同一组中的所有其他id的id。所以基本上我们必须分开对待每一组。

下表中,组A有3个id 1、2、3。1与2和3都相连,2与1和3都相连,但3与1和2都不相连。所以1和2应该输出同样,在组B中,只有5连接到组B中的所有其他id,即4和6,因此5应该输出. 与C组类似,应为8, D组不输出任何记录。

因此,select语句的输出应该是1,2,5,8。

<表类> GRP ID CONNECTED_TO tbody><<tr>1213232135B45B54B56B64C721C725C87D931日D1035D1137

您可以使用countcount(distinct)函数如下:

select id
from tbl T
where connected_to in 
(
select id from tbl T2
where T2.grp = T.grp
)
group by grp, id
having count(connected_to) = 
(
select count(distinct D.id) - 1
from tbl D
where T.grp = D.grp
)

count(connected_to) group by grp, id等于具有相同grp的count(distinct id) - 1时,表示该ID与所有其他ID连接。

相关内容

  • 没有找到相关文章