変数と重要な関数を使用した DAX クエリ

変数と重要な関数を使用した DAX クエリ

関数やCALCULATE関数などの変数について説明します。これらが DAX クエリのパフォーマンスを向上させ、正確な結果を提供するのにどのように役立つかを理解できます。

変数は、最適化のためのコードを簡単に見つけることができるため、できる限り使用する必要があります。これにより、誤った出力が得られることがなくなり、エラーを探す時間を節約できます。ただし、変数によって値の再計算が妨げられる場合があります。したがって、一度値を定義すると、CALCULATEであってもその値を変更することはできません。

変数を反復の内部と外部で使用すると異なる結果が生成されるため、変数をどこで定義して使用するかを理解しておくことが重要です。これらは、使用される場所の近くで定義する必要があります。これは、長いコードを分割するのにも役立ち、コードの理解とデバッグが容易になります。

目次

CALCULATE と FILTER を使用して DAX クエリを作成する

DAX で結果と回答を取得するには、さまざまな方法があります。作業内容に満足できるように、レポートを作成する際に独自のスタイルとフローを確立する必要があります。独自のスタイルがある場合でも、 FILTERなどのさまざまなメソッドではなくCALCULATEを使用するなど、特定のガイドラインに従う必要があります。

FILTER は大量の非圧縮データを数式エンジンに送信する可能性があり、潜在的にCallBackDataID をトリガーする可能性があります。ここでは、 CALCULATEFILTERの結果を表示するためにメジャーが使用されます。これには、クエリに対してローカルな定義済みのメジャーもあります。定義されたメジャーはデータ モデル内では見つかりませんが、コードの開発とトラブルシューティングをより迅速に行うことができます。

変数と重要な関数を使用した DAX クエリ

最初の行には、日付の変数を定義するメジャーが表示されます。これは、2016 年 3 月 31 日以降に発生する日付のファクト テーブルをフィルターすることを意味します。また、ファクト販売テーブルを反復して数量と現在の価格を乗算する総売上高の単純なメジャーを確認することもできます。

次の対策は、内でを使用することです。CallBackDataIDモジュールを思い出した場合、SUMX 関数内で IF を使用すると、CallBackDataIDが作成されます。

変数と重要な関数を使用した DAX クエリ

このメジャーは、Fact Sales テーブル全体をフィルター処理しています。Date テーブルからのフィルターを削除します。

変数と重要な関数を使用した DAX クエリ

テーブル全体をフィルタリングする場合は、1 対多のリレーションシップの片側にあるすべての列もフィルタリングされるため、注意が必要です。

このメジャーは前のメジャーと同じです。唯一の違いは、テーブル全体をフィルタリングしないことです。SUMX を使用して、フィルターされたテーブルを反復するだけです。

変数と重要な関数を使用した DAX クエリ

これは Fact Sales テーブルをフィルターする別のメジャーですが、今回はそれが含まれる列のみをフィルターします。

変数と重要な関数を使用した DAX クエリ

最後の手段は、CALCULATEとデータ モデルを使用してデータをフィルタリングして取得することです。

変数と重要な関数を使用した DAX クエリ

各測定を実行して確認する

まず、IF測定を実行します。クエリを実行する前に必ずキャッシュをクリアし、サーバー タイミングとクエリ プランをオンにしてください。

変数と重要な関数を使用した DAX クエリ

変数と重要な関数を使用した DAX クエリ

正しいデータが提供されますが、 CallBackDataIDと 3 つの期間のため、パフォーマンスが遅くなります。

Fact Sales テーブル全体をフィルターするメジャーを実行しても、 CallBackDataID を確認できます。また、15,003 行が生成され、誤った結果が得られます。

変数と重要な関数を使用した DAX クエリ

変数と重要な関数を使用した DAX クエリ

すべての Fact Sales テーブルをフィルターしないメジャーを実行すると、正しい結果が得られます。ただし、 CallBackDataIDと実体化された 15,003 行は引き続き表示されますが、出力は 7 行のみです。

変数と重要な関数を使用した DAX クエリ

変数と重要な関数を使用した DAX クエリ

列をフィルタリングする次のメジャーを実行します。正しい結果が得られ、CallBackDataID が削除されます。しかし、それでも多くの行が具体化されていることがわかります。

変数と重要な関数を使用した DAX クエリ

変数と重要な関数を使用した DAX クエリ

CALCULATEメジャーを実行します。10 行のみが実体化され、5 ミリ秒で正しいデータが生成されたことがわかります。

変数と重要な関数を使用した DAX クエリ

変数と重要な関数を使用した DAX クエリ

これは、 CallBackDataID がなく、10 行しかプルされないため、上記のすべての手段の中で最も高速です。これは、CALCULATEが迅速かつ正確な結果を得る上でいかに優れているかを示しています。

すべての DAX クエリまたはメジャーを実行すると、期間に基づいてどれが最も遅いか、最も速いかがわかります。各対策の結果も確認できます。

変数と重要な関数を使用した DAX クエリ

変数と重要な関数を使用した DAX クエリ

結論

フィルターを CALCULATE に移動すると、CallBackDataID が削除されるため、時間と具体化が節約されます。データを 2 回繰り返す必要はありません。これにより、DAX のパフォーマンスが最大化され、開発スキルの向上にも役立ちます。


Python における Self とは: 実際の例

Python における Self とは: 実際の例

Python における Self とは: 実際の例

RでRDSファイルを保存してロードする方法

RでRDSファイルを保存してロードする方法

R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。

最初の N 営業日の再考 – DAX コーディング言語ソリューション

最初の N 営業日の再考 – DAX コーディング言語ソリューション

この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。

LuckyTemplates のフィルター コンテキストの概要

LuckyTemplates のフィルター コンテキストの概要

この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。

LuckyTemplates を使用したビジネス レポート

LuckyTemplates を使用したビジネス レポート

これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて