サブクエリーの使用で、さらに高度なレポートを作成することができます。現営業年度と過去の営業年度との売上結果を比較する場合に追加クエリーを使用したり、ある特定の年度で新規顧客はどれかを特定する場合にマイナスクエリーを使用したりすることがあります。このような例では、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の結果を比較することができます。
国別に年間収益を比較する。
詳細については、 追加サブクエリーのチュートリアル を参照してください。
結合クエリーは、2つのSQLクエリーの結果を結合して、対応するロウ(行)をすべて含んだ1つの表にします。この2つのクエリーには、結合させるために同一数のカラム(列)と互換性のあるデータタイプが必要です。重複レコードは、「UNION ALL」を設定しない限り、自動的に削除されます。
結合は、表が完全には標準化されていないデータウェアハウスのアプリケーションで役立ちます。たとえば、製品コードごとの収益ではなく、製品ごとに別のカラム(列)に収益がある場合です。結合クエリーによる結合で、次のレポートの表示形式を変更することができます:
請求金額とコスト金額のそれぞれを、別々のカラム(列)ではなく、別々のロウ(列)に表示します。
詳細については、 結合サブクエリーのチュートリアル を参照してください。
通常の結合では重複レコードは返されません。このため、サブクエリーのロウ(行)がマスタークエリーのロウ(行)と一致していても表示されません。重複レコードを表示する場合は、サブクエリーレベルで「重複レコードを表示」を指定する必要があります。
交差クエリーは2つのクエリーの結果を取り込み、どちらの結果セットにも出現するロウ(行)だけを返します。たとえば、どの顧客が1年目および2年目にサービスを購入したかを知る場合には交差クエリーが必要になります。
どの顧客が1年目および2年目にサービスを購入したかを特定する。
詳細については、 交差サブクエリーのチュートリアル を参照してください。
マイナスクエリーは、1つのクエリーにおいて個々のロウ(行)を取り込み、2番目の結果セットに出現しない行を返します。マイナスクエリーは交差クエリーのほぼ逆で、一般的なデータ表示ではなく、データセットからデータを差し引きます。
年1にサービスを購入した顧客で、それ以前には購入していない顧客を特定します。
詳細については、 マイナスサブクエリーのチュートリアル を参照してください。
高度なサブクエリーは、基本のサブクエリー機能を拡張したもので、複数のビューと、場合によってはデータソースに対するクエリーを実行することができます。
ここでは、標準のチュートリアルである「Ski Team」ビューのコンテンツを、別のデータベースにインポートされたCSVと結合します。
詳細については、 高度なサブクエリーのチュートリアル を参照してください。