SQL 分层数据

SQL hierarchical data

我在 sql 服务器中有以下要求,我需要报告 catg "FIN" 的 children 的数据,它们是 parent 的直接后代。

输入

parent,child,parent_catg,child_catg
A   A   FIN FIN
A   B   FIN FIN
B   B   FIN FIN
A   C   FIN FIN
B   C   FIN FIN
C   C   FIN FIN
B   D   FIN FIN
C   D   FIN FIN
E   E   OTH OTH
E   F   OTH OTH
A   G   FIN FIN
B   G   FIN FIN
A   H   FIN FIN
P   P   FIN FIN
P   Q   FIN FIN

输出

Eligible children for reporting
B
H
Q

有人可以帮忙吗?

您可以使用 group by 和 count()。即:

 select child 
 from myTable
 where child_catg = 'FIN' and parent <> child
 group by child
 having count(*) = 1;