さまざまなキーワードと関数を使用した DAX クエリの例

さまざまなキーワードと関数を使用した DAX クエリの例

このチュートリアルでは、DAX Studio のさまざまなキーワードと関数について、それぞれの具体的なクエリ例とともに学習します。

具体的には、ORDER BY キーワードと START AT キーワード、TOPNSKIP 関数と ADDMISSINGITEMS 関数について学習します。

目次

DAX クエリの例: ORDER BY キーワード

ORDER BYキーワードを使用すると、データセットを並べ替えることができます。

基本的な例

たとえば、ORDER BY キーワードを使用すると、列をアルファベット順に並べ替えることができます。

さまざまなキーワードと関数を使用した DAX クエリの例

1行目のデータが「A」で始まっていることがわかります。DAX Studio のデフォルトの並べ替え順序は昇順です。

データを降順で表示したい場合は、DESCと記述します。したがって、この例では、ブランド列は A の代わりに「W」で始まります。

さまざまなキーワードと関数を使用した DAX クエリの例

同様に、昇順に戻したい場合は、ASCと記述します。複数の列を一度に並べ替えることもできます。これを行うには、必要な列を各列をカンマで区切って記述します。

さまざまなキーワードと関数を使用した DAX クエリの例

現実世界の例

次に、ORDER BY キーワードを使用した簡単な実際のアプリケーションを見てみましょう。これは、 TABLE キーワード チュートリアルで使用されているのと同じ例です。

さまざまなキーワードと関数を使用した DAX クエリの例

このテーブルは 3 つの列を返していることがわかります。1 つ目は製品タイプで、「Boring」と「Trendy」で構成されます。2 番目の列には、製品タイプ別の総売上高が表示されます。3 番目の関数は、売上の割合を返します。

この例では、製品タイプを並べ替える新しい列を作成する必要があります。したがって、ステートメントの後に、COLUMN キーワードを記述し、次に作成する列の名前を記述します。

さまざまなキーワードと関数を使用した DAX クエリの例

この列の式は IF 構文と同じですが、「トレンディ」と「退屈」の代わりに、この列にはトレンディには「1」、退屈には「2」が表示されます。

表にこの列を表示するには、EVALUATE 構文の下にこの列を記述します。

さまざまなキーワードと関数を使用した DAX クエリの例

新しい列「Product Type Sort」が数値 1 と 2 で構成されるテーブルに追加されていることがわかります。

この列を並べ替えるには、構文の後にORDER BYキーワードを記述します。次に、列名の後に、列の並べ替え順序に応じて ASC または DESC を記述します。

さまざまなキーワードと関数を使用した DAX クエリの例

DAX クエリの例: START AT

次に学習するのは、START ATキーワードです。

START AT は非推奨のキーワードです。ほとんどの DAX クエリでは、その使用は推奨されません。ただし、これを利用する DAX コードがまだ見つかる可能性があります。したがって、それが何であり、どのような場合に使用できるかを知ることが依然として重要です。

基本的な例

まず、EVALUATE キーワードを記述します。この例では、Products テーブルを使用します。START AT を記述する前に、まずORDER BYを使用してから、含める列を指定します。

さまざまなキーワードと関数を使用した DAX クエリの例


その後、「START AT」と書くことができます。この構文は、ORDER BY で列を記述した場合と同様の順序に従います。この例では、Products Key 列は「2」から始まり、Brand 列は「Contoso」から始まります。

さまざまなキーワードと関数を使用した DAX クエリの例

F5 キーを押すと、指定した列がクエリの方向に従っていることを結果テーブルで確認できます。

次に、別の列が追加されたときに何が起こるかを見てみましょう。この場合、カラー列は「シルバー」から始まる必要があります。

さまざまなキーワードと関数を使用した DAX クエリの例

このクエリを実行すると、[色] 列の最初のエントリが「白」であることがわかります。START AT を使用した場合、結果が常にすべての条件に従うことは保証されません。

この例では、Products テーブルに 2、Contoso、Silver がすべて同じ行に含まれるインスタンスはありません。代わりに、DAX エンジンは、作成したクエリに最も一致するものを作成しようとします。

複雑な例

別の例を見てみましょう。

さまざまなキーワードと関数を使用した DAX クエリの例

EVALUATE の後に、ORDER BY キーワードを記述し、その後に指定した 3 つの列を記述します。その後、START ATを書き込みます。この場合、Color 列は「Red」から始まり、Gender 列は「M」から始まり、Store Key 列は「2」から始まる必要があります。

さまざまなキーワードと関数を使用した DAX クエリの例

クエリを実行すると、DAX エンジンが指定されたパラメーターと一致するよう最善を尽くしたことがわかります。

結果では、2 つの列が正しいことがわかりますが、ストア キー列は 2 ではなく 199 から始まります。これは、この例のデータ モデルにはストア キー 2 が存在しないためです。

DAX エンジンが遅い

「ホーム」タブの下にある「サーバータイミング」ボタンをクリックします。

さまざまなキーワードと関数を使用した DAX クエリの例

新しいタブが下部に表示されます。「実行」ドロップダウン矢印にある「キャッシュをクリアしてから実行」ボタンをクリックします。

さまざまなキーワードと関数を使用した DAX クエリの例

クエリの実行に DAX Studio 142 ミリ秒かかることがわかります。START AT 構文を削除してコードを再度実行すると、実行にかかる時間はわずか 11 ミリ秒であることがわかります。

さまざまなキーワードと関数を使用した DAX クエリの例

START AT 構文がある場合、クエリはCallBackDataIDと呼ばれる DAX エンジンの動作を呼び出すため、実行に時間がかかります。

START AT を使用すると、コードが非常に遅くなります。使用する必要がない場合は、使用しないほうがよいでしょう。

これは、作成している DAX コードの全体的なパフォーマンスに大きな影響を与えます。このため、他の同様の関数を使用するのが最善です。

DAX クエリの例: TOPNSKIP 関数

このチュートリアルで次に学習するのは、TOPNSKIP関数です。に似ていますが、追加のパラメーターとともに微妙な違いが 1 つあります。これをさらに理解するために、例を見てみましょう。

TOPN vs TOPNSKIP

まず、EVALUATE キーワードを記述します。次に、以下の TOPN 引数を記述して、Products テーブルの上位 100 行を表示します。

さまざまなキーワードと関数を使用した DAX クエリの例

この表も、プロダクト キー列に関して昇順で並べ替えられています。

ここで、TOPN を TOPNSKIP に置き換えます。2 番目の引数には、スキップする行数を指定します。この例では10が指定されています。

さまざまなキーワードと関数を使用した DAX クエリの例

これを実行すると、プロダクト キー列が 11 で始まり 110 で終わることがわかります。計算テーブル内または表形式データ モデル内では TOPNSKIP 関数を使用できないことに注意してください。

もう一つの例

次の例では、Customer テーブルの上位 5000 行を表示してみましょう。このテーブルは、[性別] 列に関して昇順で並べ替えられています。

TOPN 関数を使用すると、テーブルが 9,518 行を返すことがわかります。これは、上位 5000 行のみを表示するように指定した場合でも、一部のデータはフィルターされずに残ったことを意味します。

さまざまなキーワードと関数を使用した DAX クエリの例

ただし、TOPNSKIP 関数を使用すると、テーブルが Gender 列の最初の 5,000 行のみを返すことがわかります。

さまざまなキーワードと関数を使用した DAX クエリの例

したがって、顧客の性別列に特定の性別に関する複数のルールがある場合でも、TOPNSKIP 関数は最初の 5,000 行のみを返します。TOPN 関数を使用した場合、この結果は保証されません。

DAX クエリの例: ADDMISSINGITEMS 関数

最後に、DAX Studio のADDMISSINGITEMS関数を見てみましょう。

SUMMARIZECOLUMNS を使用すると、デフォルトでは結果から空白行を削除しようとします。たとえば、製品の色、製品のブランド、顧客の性別を要約するクエリを作成できます。

さまざまなキーワードと関数を使用した DAX クエリの例

F5 キーを押すと、テーブルが 3 つの列を返すことがわかります。性別欄は、男性、女性、空白の 3 種類の性別で構成されます。空白は会社を表します。333 行が返されていることもわかります。

ただし、Total Sales 列を作成すると、SUMMARIZECOLUMNS フィルターによって Total Sales の空白の値が含まれる行が削除されます。テーブルには 333 行ではなく、323 行のみが含まれるようになりました。

さまざまなキーワードと関数を使用した DAX クエリの例

これらの行を戻すには 2 つのオプションがあります。最初のオプションは、総売上高の後にゼロを追加することです。結果では、10 行が Total Sales にゼロ値を返していることがわかります。

さまざまなキーワードと関数を使用した DAX クエリの例

ただし、このオプションが常に最良の結果を生み出すとは限りません。代わりに、この問題を解決するために使用できる特定の関数、ADDMISSINGITEMS 関数があります。

この関数を使用するには、これを EVALUATE の後に配置します。最初の引数に列を記述します。これらの列を SUMMARIZECOLUMNS の groupBy パラメーターに貼り付ける必要もあります。

さまざまなキーワードと関数を使用した DAX クエリの例

このクエリを実行すると、テーブルから 333 行が返されることがわかります。

さまざまなキーワードと関数を使用した DAX クエリの例

Total Sales 列を並べ替えてゼロを削除すると、テーブルの Total Sales 列の下に空白の値が返されます。

さまざまなキーワードと関数を使用した DAX クエリの例

したがって、テーブルは、SUMMARIZECOLUMNS 関数によって削除された行に対して、ゼロを報告する代わりに空白を返します。

ADDMISSINGITEMS と FILTER の使用

ADDMISSINGITEMS関数をと組み合わせて使用​​することもできます。たとえば、「Tailspin Toys」を含む行をフィルターで除外してみましょう。クエリでは、Brand 列に ( <> ) Tailspin Toys を含めてはいけないとしています。

さまざまなキーワードと関数を使用した DAX クエリの例

F5 キーを押すと、テーブルが 331 行のみを返すことがわかります。そのため、「Tailspin Toys」ブランドを含む 2 行が削除されました。

結論

このチュートリアルで説明する 2 つのキーワードと 2 つの関数は、DAX Studio でクエリを作成するときに知っておく必要がある基本的な知識です。これらは、より複雑な現実世界のアプリケーションを扱うときに役立ちます。

DAX Studio は、DAX クエリを実行および分析するための強力なツールです。将来、高度なクエリを簡単に処理できるように、このソフトウェアのコーディングの基本を学習することが重要です。

LuckyTemplates エキスパート


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 ゲートウェイとは何ですか? 知っておくべきことすべて