![見出し画像](https://assets.st-note.com/production/uploads/images/147797029/rectangle_large_type_2_60a8a64dd84c0a611328040f7d116417.png?width=1200)
クエリパイプラインとは?
DATA Saberに挑戦中のホーリーです。
残り30日余りとなりました。
Tableauには「クエリパイプライン」という処理の順番があり、正しく「クエリパイプライン」を理解していないと、計算やフィルターが思ったようなビューにはならないから、「これは覚えなくてはいけない!」と分かってはいますが、説明できるほどではないので、自分なりに理解できるようにまとめます。
クエリパイプラインとは
Tableau の操作の順序は、クエリ パイプラインとも呼ばれ、Tableau がさまざまなアクションを実行する順序です。アクションは操作とも呼ばれます。多くの操作でフィルターが適用されます。つまり、ビューを構築してフィルターを追加すると、操作の順序で確立された順序で常にフィルターが実行されます。
ユーザーが予測していたフィルターの実行順序と、操作の順序が指示する順序が異なる場合、予期しない結果になる可能性があります。これが発生した場合、パイプラインの操作の実行順序を変更できる場合があります。
操作の順序(クエリパイプライン)
![](https://assets.st-note.com/img/1721040659231-nVlzjx9Xou.png?width=1200)
サンプルスーパーストアのデータを使って、実際にやってみます。
最も使うことがありそうなディメンジョンフィルターについてやってみます。
例:「2016年」の「家電」の売り上げが20万円以上の「顧客」データを調べる。
![](https://assets.st-note.com/img/1721042098754-L84Y2jX8f5.png?width=1200)
20万以下も出ているのはクエリパイプラインの影響のよう。
20万以上の「顧客」フィルタだけを残して、「年」「カテゴリ」のフィルタを全てにしてみたら、総計で20万以上の人だけ残っています。
![](https://assets.st-note.com/img/1721044609911-6SikragXRO.png?width=1200)
![](https://assets.st-note.com/img/1721045055478-0O5gN4ZA6F.png?width=1200)
年・カテゴリによらず、総計が20万以上でフィルタされていることがわかります。ということは「2016年・家電」でフィルタしたのに20万未満も存在したのは、「総計20万の中で更に2016年・家電」でフィルタされている?
同じディメンジョンフィルターでも総計が優先されている?
フィルタ処理をする対象はフィルタをする前のテーブル。フィルタがない状態の中で、「総計20万以上、2016年、家電」を同時にフィルタしようとすると変な動きをします。
「2016年、家電」を「顧客の総計20万以上」より優先度を上げる、クエリパイプラインの上位に持ってくる場合に使うのが、「コンテキストフィルター」
優先度を上げたい「年」と「カテゴリ」をコンテキストに追加を選択
![](https://assets.st-note.com/img/1721046013423-q7026c1Dsm.png)
グレーに変わって、顧客の総額20万以上だけになりました。
![](https://assets.st-note.com/img/1721046187512-zn76CQqJjD.png?width=1200)
年やカテゴリを絞った後に上位N位等を見る場合は、これを活用すれば良いですね。
他には、「売上総計」はメジャーフィルターにも出来そう、しかもディメンジョンの下にあるので、これでも出来ました。
![](https://assets.st-note.com/img/1721046550320-SOX8AmjFZw.png?width=1200)
今回はGanekoさん、Qiitaの記事を大いに参考にさせていただきました。認識の間違いがあるかもしれません(申し訳ないです💦)。
あとCopilotの力も借りました。
この記事が気に入ったらサポートをしてみませんか?