0

階層の下に設定されたフラグのセットが 1 つだけのプライマリ チャネル (階層の最上位) を識別する必要があります。以下のケースでは、下に 2 つのフラグがあるため、US は有効なプライマリ チャネルではありません。有効なプライマリ チャネルのみが US1、US2、UK です。

可能であれば、単一のクエリで解決したいと思います。それ以外の場合は、手順に従ってオプションを検討します。

階層クエリ、group by、count(flag) でいくつかのバリエーションを試しましたが、どういうわけか「US」を削除して目的の結果を得ることができません。

このユースケースの高レベルのアプローチで誰かが私を助けてくれれば幸いです。

入力データ

---------------------------------
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
---------------------------------
4

1 に答える 1