この質問をする目的で単純化しようとしました。うまくいけば、これは理解できるでしょう。
基本的に、時間ディメンション、別のディメンション、および階層ディメンションを持つファクト テーブルがあります。質問のために、階層次元が郵便番号と州であると仮定しましょう。他の次元は説明的なものです。それを「顧客」と呼びましょう。50 人の顧客がいると仮定しましょう。
すべての顧客が時間ディメンションで毎日少なくとも 1 つのファクト行を持つ郵便番号が少なくとも 1 つある州のセットを見つける必要があります。郵便番号に 49 人の顧客しかいない場合、私は気にしません。50 人の顧客のうち 1 人でも、郵便番号に 1 日でも価値がなければ、私は気にしません。最後に、どの郵便番号が州の選択に適しているかを知る必要もあります。すべての郵便番号に完全なデータ セットが含まれている必要はありません。少なくとも 1 つの郵便番号が含まれている必要があります。
複数のクエリを作成し、クライアント側で処理を行うことは気にしません。これは、1 日に 1 回だけ生成する必要があり、キャッシュできるデータセットです。単純なブルートフォース反復以外に、複数のクエリでそれを行う特にクリーンな方法は見当たりません。また、データセットには非常に多くの「郵便番号」があります (実際には郵便番号ではありませんが、階層の下位レベルには約 100,000 のエントリがあり、最上位レベルには数百のエントリがあるため、zipcode->state は合理的な例えです)