我需要在其层次结构下仅设置一组标志来识别主通道(层次结构中最高的)。在以下情况下,US 不是有效的主要渠道,因为下面有两个标志。只有 US1、US2、UK 才是有效的主要频道。
如果可能的话,我想有一个单一查询的解决方案;否则我将探索程序选项。
我尝试了分层查询、分组依据、计数(标志)的一些变体,不知何故我无法消除“美国”并获得所需的结果。
如果有人可以为这个用例提供高级方法,我将不胜感激。
输入数据
---------------------------------
channel | flag | parent channel
---------------------------------
US | |
US1 | | US
A1 | yes | US1
A2 | | A1
A3 | | A2
US2 | | US
B1 | | US2
B2 | yes | B1
B3 | | B2
UK | |
C1 | | UK
C2 | | C1
C3 | yes | C2
---------------------------------
使用输入数据的带有标志计数的多个层次结构
---------------------
channel | flag count
---------------------
US | 2
US1 | 1
A1 | 1
A2 | 0
A3 | 0
US2 | 1
B1 | 1
B2 | 1
B3 | 0
UK | 1
C1 | 1
C2 | 1
C3 | 1
----------------
输出
---------------------------------
primary channel
---------------------------------
US1
US2
UK
---------------------------------