30日間の無料評価版をお試しいただけます。

サブクエリー

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

追加

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

結合

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

マイナス

マイナスサブクエリーは、1つのクエリーにおいて個々のロウ(行)を取り込み、2番目のクエリーに出現しない行を返します。

交差

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

追加クエリー

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

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

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

  1. 最初に1つのクエリーを作成する必要があります。このクエリーは、国別に選択された期間の収益を返します。カラム(列)フィールドに「Camp Country」と「Invoiced Amount」の合計、フィルターに「Year」があります。
  2. サブクエリーオプションを選択して、追加を選択します。標準的なビルダーとよく似たクエリービルダーが表示されます。フィールドのセクションで、オリジナルのクエリーの属性を再現する必要があります。オリジナルのクエリーの再現によって同一レベルの集約が行えるようになります。
  3. サブクエリーに対する結合を設定する必要があります。結合セクションで、「更新」をクリックして利用可能な結合フィールドを表示します。マスタークエリーのフィールドとサブクエリーのフィールドをリンクさせる必要があります。
    注意:メトリック(数値)フィールドを含める必要はありません。
  4. フィールドを対応させたら、「追加」をクリックして結合を一覧に追加します。
  5. マスタークエリーに戻ります。フィールドの一覧に、追加の属性が表示されます。この属性はサブクエリーによって接頭辞として付けられていることと、フィールドの一覧から削除できないことに注意してください。
  6. 最後のステップはフィルターの設定です。フィルターのページに進みます。このページは、データページと同じようにフィルター属性のタブ型セットになっています。それぞれのフィルターに要求される期間のフィルター値を設定します。
  7. この段階でレポートを実行すると、設定済みの各期間に1つずつ、合計2つのカラム(列)ができます。必要に応じて、計算フィールドを作成し、この2つのカラム(列)の値の違いを測定することができます。これは、マスタークエリーに通常の方法で計算フィールドを作成して行います。

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

結合クエリー

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

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

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

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

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

Union All

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

交差クエリー

交差クエリーは2つのクエリーの結果を取り込み、どちらの結果セットにも出現するロウ(行)だけを返します。たとえば、どの顧客が1年目および2年目にサービスを購入したかを知る場合には交差クエリーが必要になります。

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

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

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

マイナスクエリー

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

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

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

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

高度なサブクエリー

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

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

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