Python における Self とは: 実際の例
Python における Self とは: 実際の例
関数がどのように動作するかを学習します。
CROSSJOIN 関数を使用すると、2 つのテーブルのデカルト積を作成できます。デカルト積は、2 つ以上のテーブルの行のすべての可能な組み合わせのセットです。
このチュートリアルでは、以下のDAX コードを使用します。
これらの組み合わせの一部がファクト テーブルに存在しない場合でも、CROSSJOIN 関数の結果、製品のブランドと色の組み合わせが得られることがわかります。これにより、合計 176 行を含むテーブルが作成されます。
[サーバー タイミング] タブでは、最初のクエリは Products テーブルからブランドを取得し、2 番目のクエリは色を取得します。
Logical Query Planでは、最初の行はテーブルの形式で結果を返します。製品テーブルの 2 行目と 3 行目は、それぞれ色とブランドをスキャンします。
データを受信すると、数式エンジンはテーブルを反復処理し、両方の列の組み合わせを生成します。2 行目の CrossApply は、CROSSJOIN 関数に対応します。
目次
DAX での CROSSJOIN 結果のフィルター
関数を使用して、CROSSJOIN の結果をフィルタリングできます。たとえば、赤色の製品のみを表示するために使用できます。
ただし、FILTER 引数内に CROSSJOIN 関数を配置できないことに注意してください。
このコードを実行して [サーバー タイミング] タブを確認すると、フィルター コンテキストがクエリ内の WHERE 句として表示されていないことがわかります。
CROSSJOIN 関数は、Formula Engineによってのみ解決できます。このコードは、 Storage Engineによってのみ解決できる関数である FILTER との間にあるため、機能しません。したがって、CROSSJOIN により、これら 2 つの関数間のループが中断されました。
したがって、フィルターを機能させるには、CROSSJOIN 引数内に FILTER 関数を配置する必要があります。
このコードを実行して [サーバー タイミング] タブを確認すると、FILTER 関数が WHERE 句で表されていることがわかります。
論理クエリ プランでは、フィルター演算子の代わりにフィルター VertiPaqが使用されていることがわかります。
これは、コード内の新しいフィルター条件をストレージ エンジンにプッシュダウンできるためです。結果が返された後、CROSSJOIN 引数がフォーミュラ エンジン内で実行されます。
IN オペレーター
FILTER 引数で等号の代わりに演算子を使用することもできます。
IN 演算子を FILTER 関数の式引数内で使用すると、値が値のリスト内に含まれるかテーブル内に含まれるかに基づいてテーブルをフィルタリングできます。
FILTER – IN の組み合わせを使用する場合、DAX エンジンは製品の色が赤か黒かを確認するIsEmptyフィルターを実行する必要があります。
CROSSJOIN DAX 結果に Total Sales 列を追加
他の関数も CROSSJOIN と併用できます。
関数を使用してテーブルに別の列を追加し、表示する情報の引数を記述することができます。
この例では、Total Sales 列を追加してみましょう。
コードを実行すると、結果は依然として 176 行を返します。ただし、一部の組み合わせでは、[総売上高] 列の値が空白になります。これは、これらの組み合わせには Sales テーブルに対応する行がないためです。
[サーバー タイミング] タブで、コードは最初にブランドと色を選択します。次に、数量と販売正味価格の積を合計します。
この場合、DAX エンジンはまず、Products テーブル内に存在するブランドと色のすべての組み合わせを、Sales テーブル内の対応する行と合わせて取得します。次に、ブランド列と色の列を別々に取得します。
物理クエリ プランでは、2 つのデータ キャッシュが表示されます。1 つはブランド用、もう 1 つは色用です。合計レコードを乗算すると、176 行になります。
次に、それらの 176 行に対して検索が実行され、Sales テーブルに対応する値があるかどうかが確認されます。111 行のみに値があることがわかります。残りの 65 行は空白を返します。
さらに、CROSSJOIN 引数にさらに列を追加すると、結果としてさらに多くの行が返されます。
結論
DAX CROSSJOIN 関数は、あるテーブルの行と別のテーブルの行を結合して、新しいテーブルを生成します。この関数は SQL の CROSS JOIN 句に似ており、データ モデルでより複雑なクエリを作成するために使用できます。
2 つ以上のテーブルからすべての可能な値の組み合わせのリストを生成できます。また、多数の行を含む新しいテーブルを迅速に作成するために使用することもできます。これは、データ分析、テスト、またはパフォーマンスのベンチマークに役立ちます。
全体として、CROSSJOIN 関数は、複数のテーブルのデータを結合したり、すべての可能な組み合わせのリストを生成したりする必要があるシナリオで便利なツールです。
ではごきげんよう、
Python における Self とは: 実際の例
R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。
この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。
このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。
この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。
LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。
LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。
このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。
これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。
LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて