Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Anchor
top
top

Table of Contents
classcontents

概要

サブクエリーの使用で、さらに高度なレポートを作成することができます。現営業年度と過去の営業年度との売上結果を比較する場合に追加クエリーを使用したり、ある特定の年度で新規顧客はどれかを特定する場合にマイナスクエリーを使用したりすることがあります。このような例では、Yellowfinでは異なる2種類のクエリーを作成して、結果のセットを結合した1つの表にして表示します。Yellowfinでは、以下の4タイプのサブクエリーを作成することができます:サブクエリ―を使用することで、より洗練されたレポートを作成することができます。例えば、今期の財政結果と、過去の財政結果を比較したい場合は、追加サブクエリ―を使用することができます。また、特定の年の新規顧客のみを特定したい場合は、マイナスサブクエリ―を使用することができます。両者の例において、Yellowfinは異なる2つのクエリ―を生成し、結果を組み合せてひとつの表として提供します。Yellowfinでは、以下の4つのサブクエリ―を作成することができます。

追加

追加サブクエリーは1つのクエリーの結果を取り込み、その結果を追加のカラムとして、もう1つの結果セットに追加します。このクエリーの目的は、1つのクエリーの結果を別のクエリーの結果と比較することです。追加サブクエリ―は、ひとつのクエリ―結果を、カラム(列)を追加することで、別の結果に追加します。このサブクエリ―を使用することで、ひとつのクエリ―結果を、他の結果と比較することができます。

結合

結合サブクエリーは、2つのクエリーの結果を結合して、対応するカラム(列)から成る1つの表にします。結合は、表が完全には標準化されていないときのデータウェアハウスのアプリケーションで役立ちます。結合サブクエリ―は、2つのクエリ―結果を組み合せて、値が一致するカラム(列)からなるひとつの表を作成します。結合サブクエリ―は、表が完全に標準化されていない場合、データウェアハウスのアプリケーションに有用です。

マイナス

マイナスサブクエリーは、1つのクエリーにおいて個々のロウ(行)を取り込み、2番目のクエリーに出現しない行を返します。マイナスサブクエリ―は、ひとつのクエリ―の異なる2つのロウ(行)のうち、二番目のクエリ―に表示されないロウ(行)のみ返します。

交差

交差クエリーは2つのクエリーの結果を取り込み、どちらのセットにも出現するロウ(行)だけを返します。交差サブクエリ―は、2つのクエリ―から、両方に表示されるロウ(行)のみを返します。

...

追加サブクエリー

追加サブクエリーは1つのクエリーの結果を取り込み、その結果をデータの新規カラム(列)として、もう1つのクエリーに追加します。1番目のクエリーと2番目のクエリーは、この2つのクエリーを結合させるため、まったく同じGROUP BY(またはディメンション(次元))のカラム(列)がなければなりません。追加サブクエリ―は、ひとつのクエリ―結果を、新しいデータのカラム(列)として、他のクエリ―に追加します。2つのクエリ―は結合されるため、まったく同一のグループ(または、ディメンション(次元))を持つ必要があります。

 追加サブクエリ―を使用することで、ひとつのクエリ―結果を、他の結果と比較することができます。例えば、本年度の収益と、昨年度の収益を比較するとします。データソースが両方の属性を持つカラム(列)を持たない限り、これは通常非常に難しい作業です。一般的にデータは、同じ表内の異なるロウ(行)に保存されます。追加サブクエリ―では、ひとつのクエリ―が本年度の収益結果を呼び出し、別のクエリ―が昨年度の収益結果を呼び出します。計算フィールドを使用して、同様の結果を比較することもできます。

追加クエリーの目的は、1つのクエリーの結果を別のクエリーの結果と比較することです。当年のYTD(会計年度の初めから現在まで)の収益と昨年の同一期間の収益を比較する場合、この比較ができるようにデータソースの設定を当年と昨年のYTDの属性のそれぞれに対するカラム(列)が存在するよう設定していない限り、通常は比較しにくいものです。通常、データの格納場所は同じ表の中でもロウ(行)が違います。追加クエリーによって、1番目のクエリーが当年のYTDの結果を取り込み、別のクエリーが昨年の期間の結果を取り込みます。計算フィールドを使用することで、この2つのYTDの結果を比較することができます。

Image RemovedImage Added

国別に年間収益を比較する。

  1. 最初に1つのクエリーを作成する必要があります。このクエリーは、国別に選択された期間の収益を返します。カラム(列)フィールドに「Camp Country」と「Invoiced Amount」の合計、フィルターに「Year」があります。
  2. サブクエリーオプションを選択して、追加を選択します。標準的なビルダーとよく似たクエリービルダーが表示されます。フィールドのセクションで、オリジナルのクエリーの属性を再現する必要があります。オリジナルのクエリーの再現によって同一レベルの集約が行えるようになります。
  3. サブクエリーに対する結合を設定する必要があります。結合セクションで、「更新」をクリックして利用可能な結合フィールドを表示します。マスタークエリーのフィールドとサブクエリーのフィールドをリンクさせる必要があります。

    まず始めに、国別に、選択した期間の収益を返すクエリ―を作成します。フィルターに、「Country」、「Sum Invoiced Amount」、「Year」フィールドを設定します。

  4. サブクエリ―追加」をクリックし、「追加」を選択します。標準ビルダーと非常によく似た、クエリ―ビルダーが開きます。フィールドの選択で、オリジナルのクエリ―を複製する必要があり、これにより同一レベルの集約を行うことができます。


  5. .サブクエリ―に使用する結合方法を指定します。結合項目で、更新をクリックすることで、利用可能な結合フィールドが表示されます。マスタークエリ―上のフィールドと、サブクエリ―上のフィールドをリンクします。

    注意:メトリック(数値)フィールドを含める必要はありません。

  6. フィールドを対応させたら、「追加」アイコンをクリックして結合を一覧に追加します。
  7. マスタークエリーに戻ります。フィールドの一覧に、追加の属性が表示されます。この属性はサブクエリーによって接頭辞として付けられていることと、フィールドの一覧から削除できないことに注意してください。
  8. 最後のステップはフィルターの設定です。フィルターのページに進みます。このページは、データページと同じようにフィルター属性のタブ型セットになっています。それぞれのフィルターに要求される期間のフィルター値を設定します。
  9. この段階でレポートを実行すると、設定済みの各期間に1つずつ、合計2つのカラム(列)ができます。必要に応じて、計算フィールドを作成し、この2つのカラム(列)の値の違いを測定することができます。これは、マスタークエリーに通常の方法で計算フィールドを作成して行います。

...

  1. フィールドのリンクを作成したら、「+」アイコンをクリックして、一覧に結合を追加します。

  2. マスタークエリ―に戻ります。フィールド一覧に、追加された属性が表示されます。

    注意:この属性は、サブクエリ―により事前に設定されており、フィールド一覧から削除することができません。

  3. 最後に、フィルターを設定します。フィルター設定画面に移動します。こちらの画面は、データページと非常によく似ており、フィルター属性のセットがタブとして表示されます。指定した期間に必要な各フィルターのフィルター値を設定します。

  4. レポートを実行すると、指定した各期間にひとつずつ、2つのカラム(列)が表示されます。必要に応じて、計算フィールドを作成することで、2つの値の違いを定義することもできます。これは、マスタークエリ―内で、標準的な計算フィールドを作成することで実施することができます。

より詳細な情報は、追加サブクエリーのチュートリアルを参照してください。

結合クエリー

結合クエリーは、2つのSQLクエリーの結果を結合して、対応するロウ(行)をすべて含んだ1つの表にします。この2つのクエリーには、結合させるために同一数のカラム(列)と互換性のあるデータタイプが必要です。重複レコードは、「UNION ALL」を設定しない限り、自動的に削除されます。結合クエリ―は、2つのSQLクエリ―結果を、ロウ(行)がすべて一致する単一の表にします。2つのクエリ―は結合をするために、同一数のカラム(列)を持ち、変換可能なデータタイプでなくてはいけません。すべてを結合する、を選択しない限り、重複するレコードは自動的に削除されます。

 

結合は、表が完全には標準化されていないデータウェアハウスのアプリケーションで役立ちます。たとえば、製品コードごとの収益ではなく、製品ごとに別のカラム(列)に収益がある場合です。結合クエリーによる結合で、次のレポートの表示形式を変更することができます。結合クエリ―は、表が完全に標準化されていない、データウェアハウスのアプリケーションに使用すると有用です。例えば、製品コード別ではなく、個別の製品ごとに収益のカラム(列)を持つことができます。結合クエリ―では、以下のようにレポートの表示を変更することができます。

Image RemovedImage Added

請求金額とコスト金額のそれぞれを、別々のカラム(列)ではなく、別々のロウ(列)に表示します。売上金額と費用金額を、別々のカラム(列)ではなく、別々のロウ(行)に表示する。

  1. ラベルに「Invoiced」と入力して計算フィールドを作成します。
  2. 国別の収益を返すクエリーを作成します。カラム(列)フィールドに、「Camp Country」、「Label」、「Invoiced Amount」の合計が表示されます。
  3. サブクエリーオプションを選択して、「結合」を選択します。結合クエリーで、最初のクエリーのフィールドと2番目のクエリーのフィールドを対応づける必要があります。この場合、「コストラベル」に対して新しい集計フィールドが作成され、レポートに追加されます。
    メトリック(数値)の請求金額ではなく、キャンプコストの新しいメトリック(数値)が追加されます。
  4. この段階でレポートを実行すると、領収金額と請求金額の両方に対して1つのカラムが表示されます。

...

  1. 計算フィールドを使用して、表示名「Invoiced」のラベルを作成します。
  2. 国別の収益を返すクエリ―を作成します。フィールドには、「Country」、「ラベル(Invoiced」、「Sum Invoiced Amount」を使用します。

  3. サブクエリ―追加」をクリックして、「結合」を選択します。結合クエリ―では、最初のクエリ―にあるフィールドを、次のクエリ―にあるフィールドと一致させなくてはいけません。計算フィールドを使用して、表示名「Cost」のラベルを作成し、レポートに追加します。 
    請求金額(invoiced amount)のメトリック(数値)ではなく、費用金額(cost of camp)のメトリック(数値)が追加されます。
  4. レポートを実行すると、請求金額と費用金額の両方のカラム(列)が表示されます。

より詳細な情報は、結合サブクエリーのチュートリアルを参照してください。

すべて結合

通常の結合では重複レコードは返されません。このため、サブクエリーのロウ(行)がマスタークエリーのロウ(行)と一致していても表示されません。重複レコードを表示する場合は、サブクエリーレベルで「重複レコードを表示」を指定する必要があります。通常の結合サブクエリ―では、重複するレコードは返されないため、サブクエリ―内のロウ(行)が、マスタークエリ―内のロウ(行)と一致したとしても、表示されません。重複するレコードもすべて表示したい場合は、サブクエリ―レベルで、これを指定しなくてはいけません。

...

交差サブクエリー

交差クエリーは2つのクエリーの結果を取り込み、どちらの結果セットにも出現するロウ(行)だけを返します。たとえば、どの顧客が年1および年2にサービスを購入したかを知る場合には交差クエリーが必要になります。交差サブクエリ―では、2つのクエリ―の結果から、両方の結果に含まれるロウ(行)のみ表示します。例えば、年1、および年2の両方に購入履歴のある顧客のみ表示したい場合は、交差サブクエリ―が有効です。

Image RemovedImage Added

どの顧客が年1および年2にサービスを購入したかを特定する。

  1. 年2に属している顧客の一覧を返すクエリーを作成する必要があります。「カラム(列)」一覧に「アスリートID」、「名」、「姓」を、「フィルター」に「年」を加えます。
    注意:この中には年1に購入していない顧客が含まれている可能性があります。
  2. サブクエリーオプションを選択して、「交差」を選択します。通常のクエリービルダーとは少し違うインターフェースが表示されます。この目的は、マスタークエリーへリンクするフィールドまたはキーを選択して、適用するフィルターを指定することです。この例では、アスリートIDとフィルターをリンクし、年1の値を設定します。
  3. 最後のステップはフィルターの設定です。フィルターのページに進みます。このページは、データページと同じようにフィルター属性のタブ型セットになっています。それぞれのフィルターに要求される期間のフィルター値を設定します。

詳細については、交差サブクエリーのチュートリアルを参照してください。

マイナスクエリー

マイナスクエリーは、1つのクエリーにおいて個々のロウ(行)を取り込み、2番目の結果セットに出現しない行を返します。マイナスクエリーは交差クエリーのほぼ逆で、一般的なデータ表示ではなく、データセットからデータを差し引きます。

Image Removed

年1にサービスを購入した顧客で、それ以前には購入していない顧客を特定します。

  1. 年1に属している顧客の一覧を返すクエリーを作成する必要があります。「カラム(列)」一覧に「アスリートID」、「名」、「姓」を、「フィルター」に「年」を加えます。
  2. サブクエリーオプションを選択して、「マイナス」を選択します。通常のクエリービルダーとは少し違うインターフェースが表示されます。この目的は、マスタークエリーへリンクするフィールドまたはキーを選択して、適用するフィルターを指定することです。この例では、Athlete IDとフィルターをリンクし、年1と異なる値を設定します。
  3. 最後のステップはフィルターの設定です。フィルターのページに進みます。このページは、データページと同じようにフィルター属性のタブ型セットになっています。それぞれのフィルターに要求される期間のフィルター値を設定します。以下の図のように、マスタークエリーを指定した年と「等しい(=)」、サブクエリーを指定した年と「と異なる(≠)」に設定します。

...

年1、および年2の両方にサービス購入履歴のある顧客を表示する。

  1. まず始めに、年2に属している顧客の一覧を返すクエリ―を作成します。「Athlete ID」、「First Name」、「Last Name」、「Year」フィールドをフィルターに使用します。

    注意: このクエリ―内には、年1に購入履歴の無い顧客も含まれている可能性があります。

  2. サブクエリ―追加」をクリックして、「交差」を選択します。標準的なクエリ―ビルダーとは、若干異なる画面が表示されます。マスタークエリ―からリンクするフィールドや、キーとなるフィールドを選択し、フィルターを適用するフィールドを定義します。今回の例では、「Athlete ID」フィールドを使用してリンクを作成し、年1でフィルターの設定をします。

  3. 最後に、フィルターを設定します。フィルター設定画面に移動します。こちらの画面は、データページと非常に似ており、フィルター属性のセットがタブとして表示されます。指定した期間に必要な各フィルターのフィルター値を設定します。

より詳細な情報は、交差サブクエリーのチュートリアルを参照してください。

マイナスサブクエリー

マイナスサブクエリ―では、ひとつのクエリ―の異なる2つのロウ(行)のうち、二番目のクエリ―に表示されないロウ(行)のみを返します。マイナスサブクエリ―は、交差サブクエリ―の反対のような位置づけで、交差サブクエリ―のように共通の結果を表示するのではなく、それを削除します。

Image Added

年1にサービス購入履歴のある顧客のうち、それ以前に購入履歴の無い顧客を表示する。

  1. まず始めに、年1に属する顧客の一覧を返すクエリ―を作成します。「Athlete ID」、「First Name」、「Last Name」、「Year」フィールドをフィルターに使用します。

  2. サブクエリ―追加」をクリックして、「マイナス」を選択します。標準的なクエリ―ビルダーとは、若干異なる画面が表示されます。マスタークエリ―からリンクするフィールドや、キーとなるフィールドを選択し、フィルターを適用するフィールドを定義します。今回の例では、「Athlete ID」フィールドを使用してリンクを作成し、年1と異なる値をフィルターします。

  3. 最後に、フィルターを設定します。フィルター設定画面に移動します。こちらの画面は、データページと非常によく似ており、フィルター属性のセットがタブとして表示されます。指定した期間に必要な各フィルターのフィルター値を設定します。

    今回は、マスタークエリ―のフィルターを、「等しい(=)」指定した年、サブクエリ―のフィルターを、「と異なる()」指定した年、と設定します。

より詳細な情報は、マイナスサブクエリーのチュートリアルを参照してください。

高度なサブクエリー

高度なサブクエリーは、基本のサブクエリー機能を拡張したもので、複数のビューと、場合によってはデータソースに対するクエリーを実行することができます。高度なサブクエリ―は、複数のビューや、場合によっては複数のデータソースからクエリ―を作成することで、基本的なサブクエリ―の機能を延長します。

ここでは、標準のチュートリアルである「Ski Team」ビューのコンテンツを、別のデータベースにインポートされたCSVと結合します。

Image Removed

...

こちらの例では、標準的な接続である「Ski Team」ビューを、異なるデータベースにインポートされたCSVと結合しています。

Image Added

より詳細な情報は、高度なサブクエリーのチュートリアルを参照してください。

...