概要
サブクエリ―を使用することで、より洗練されたレポートを作成することができます。例えば、今期の財政結果と、過去の財政結果を比較したい場合は、追加サブクエリ―を使用することができます。また、特定の年の新規顧客のみを特定したい場合は、マイナスサブクエリ―を使用することができます。両者の例において、Yellowfinは異なる2つのクエリ―を生成し、結果を組み合せてひとつの表として提供します。Yellowfinでは、以下の4つのサブクエリ―を作成することができます。
追加 | 追加サブクエリ―は、ひとつのクエリ―結果を、カラム(列)を追加することで、別の結果に追加します。このサブクエリ―を使用することで、ひとつのクエリ―結果を、他の結果と比較することができます。 | |
結合 | 結合サブクエリ―は、2つのクエリ―結果を組み合せて、値が一致するカラム(列)からなるひとつの表を作成します。結合サブクエリ―は、表が完全に標準化されていない場合、データウェアハウスのアプリケーションに有用です。 | |
マイナス | マイナスサブクエリ―は、ひとつのクエリ―の異なる2つのロウ(行)のうち、二番目のクエリ―に表示されないロウ(行)のみ返します。 | |
交差 | 交差サブクエリ―は、2つのクエリ―から、両方に表示されるロウ(行)のみを返します。 |
追加サブクエリー
追加サブクエリ―は、ひとつのクエリ―結果を、新しいデータのカラム(列)として、他のクエリ―に追加します。2つのクエリ―は結合されるため、まったく同一のグループ(または、ディメンション(次元))を持つ必要があります。
追加サブクエリ―を使用することで、ひとつのクエリ―結果を、他の結果と比較することができます。例えば、本年度の収益と、昨年度の収益を比較するとします。データソースが両方の属性を持つカラム(列)を持たない限り、これは通常非常に難しい作業です。一般的にデータは、同じ表内の異なるロウ(行)に保存されます。追加サブクエリ―では、ひとつのクエリ―が本年度の収益結果を呼び出し、別のクエリ―が昨年度の収益結果を呼び出します。計算フィールドを使用して、同様の結果を比較することもできます。
例
国別に年間収益を比較する。
まず始めに、国別に、選択した期間の収益を返すクエリ―を作成します。フィルターに、「Country」、「Sum Invoiced Amount」、「Year」フィールドを設定します。
「サブクエリ―追加」をクリックし、「追加」を選択します。標準ビルダーと非常によく似た、クエリ―ビルダーが開きます。フィールドの選択で、オリジナルのクエリ―を複製する必要があり、これにより同一レベルの集約を行うことができます。
サブクエリ―に使用する結合方法を指定します。結合項目で、更新をクリックすることで、利用可能な結合フィールドが表示されます。マスタークエリ―上のフィールドと、サブクエリ―上のフィールドをリンクします。
注意:メトリック(数値)フィールドを含める必要はありません。
フィールドのリンクを作成したら、「+」アイコンをクリックして、一覧に結合を追加します。
マスタークエリ―に戻ります。フィールド一覧に、追加された属性が表示されます。
注意:この属性は、サブクエリ―により事前に設定されており、フィールド一覧から削除することができません。
最後に、フィルターを設定します。フィルター設定画面に移動します。こちらの画面は、データページと非常によく似ており、フィルター属性のセットがタブとして表示されます。指定した期間に必要な各フィルターのフィルター値を設定します。
- レポートを実行すると、指定した各期間にひとつずつ、2つのカラム(列)が表示されます。必要に応じて、計算フィールドを作成することで、2つの値の違いを定義することもできます。これは、マスタークエリ―内で、標準的な計算フィールドを作成することで実施することができます。
より詳細な情報は、追加サブクエリーのチュートリアルを参照してください。
結合クエリー
結合クエリ―は、2つのSQLクエリ―結果を、ロウ(行)がすべて一致する単一の表にします。2つのクエリ―は結合をするために、同一数のカラム(列)を持ち、変換可能なデータタイプでなくてはいけません。すべてを結合する、を選択しない限り、重複するレコードは自動的に削除されます。
結合クエリ―は、表が完全に標準化されていない、データウェアハウスのアプリケーションに使用すると有用です。例えば、製品コード別ではなく、個別の製品ごとに収益のカラム(列)を持つことができます。結合クエリ―では、以下のようにレポートの表示を変更することができます。
例
売上金額と費用金額を、別々のカラム(列)ではなく、別々のロウ(行)に表示する。
- 計算フィールドを使用して、表示名「Invoiced」のラベルを作成します。
国別の収益を返すクエリ―を作成します。フィールドには、「Country」、「ラベル(Invoiced)」、「Sum Invoiced Amount」を使用します。
- 「サブクエリ―追加」をクリックして、「結合」を選択します。結合クエリ―では、最初のクエリ―にあるフィールドを、次のクエリ―にあるフィールドと一致させなくてはいけません。計算フィールドを使用して、表示名「Cost」のラベルを作成し、レポートに追加します。
請求金額(invoiced amount)のメトリック(数値)ではなく、費用金額(cost of camp)のメトリック(数値)が追加されます。 - レポートを実行すると、請求金額と費用金額の両方のカラム(列)が表示されます。
より詳細な情報は、結合サブクエリーのチュートリアルを参照してください。
すべて結合
通常の結合サブクエリ―では、重複するレコードは返されないため、サブクエリ―内のロウ(行)が、マスタークエリ―内のロウ(行)と一致したとしても、表示されません。重複するレコードもすべて表示したい場合は、サブクエリ―レベルで、これを指定しなくてはいけません。
交差サブクエリー
交差サブクエリ―では、2つのクエリ―の結果から、両方の結果に含まれるロウ(行)のみ表示します。例えば、年1、および年2の両方に購入履歴のある顧客のみ表示したい場合は、交差サブクエリ―が有効です。
例
年1、および年2の両方にサービス購入履歴のある顧客を表示する。
まず始めに、年2に属している顧客の一覧を返すクエリ―を作成します。「Athlete ID」、「First Name」、「Last Name」、「Year」フィールドをフィルターに使用します。
注意: このクエリ―内には、年1に購入履歴の無い顧客も含まれている可能性があります。
「サブクエリ―追加」をクリックして、「交差」を選択します。標準的なクエリ―ビルダーとは、若干異なる画面が表示されます。マスタークエリ―からリンクするフィールドや、キーとなるフィールドを選択し、フィルターを適用するフィールドを定義します。今回の例では、「Athlete ID」フィールドを使用してリンクを作成し、年1でフィルターの設定をします。
最後に、フィルターを設定します。フィルター設定画面に移動します。こちらの画面は、データページと非常に似ており、フィルター属性のセットがタブとして表示されます。指定した期間に必要な各フィルターのフィルター値を設定します。
より詳細な情報は、交差サブクエリーのチュートリアルを参照してください。
マイナスサブクエリー
マイナスサブクエリ―では、ひとつのクエリ―の異なる2つのロウ(行)のうち、二番目のクエリ―に表示されないロウ(行)のみを返します。マイナスサブクエリ―は、交差サブクエリ―の反対のような位置づけで、交差サブクエリ―のように共通の結果を表示するのではなく、それを削除します。
例
年1にサービス購入履歴のある顧客のうち、それ以前に購入履歴の無い顧客を表示する。
まず始めに、年1に属する顧客の一覧を返すクエリ―を作成します。「Athlete ID」、「First Name」、「Last Name」、「Year」フィールドをフィルターに使用します。
「サブクエリ―追加」をクリックして、「マイナス」を選択します。標準的なクエリ―ビルダーとは、若干異なる画面が表示されます。マスタークエリ―からリンクするフィールドや、キーとなるフィールドを選択し、フィルターを適用するフィールドを定義します。今回の例では、「Athlete ID」フィールドを使用してリンクを作成し、年1と異なる値をフィルターします。
最後に、フィルターを設定します。フィルター設定画面に移動します。こちらの画面は、データページと非常によく似ており、フィルター属性のセットがタブとして表示されます。指定した期間に必要な各フィルターのフィルター値を設定します。
今回は、マスタークエリ―のフィルターを、「等しい(=)」指定した年、サブクエリ―のフィルターを、「と異なる(≠)」指定した年、と設定します。
より詳細な情報は、マイナスサブクエリーのチュートリアルを参照してください。
高度なサブクエリー
高度なサブクエリ―は、複数のビューや、場合によっては複数のデータソースからクエリ―を作成することで、基本的なサブクエリ―の機能を延長します。
例
こちらの例では、標準的な接続である「Ski Team」ビューを、異なるデータベースにインポートされたCSVと結合しています。
より詳細な情報は、高度なサブクエリーのチュートリアルを参照してください。