Python における Self とは: 実際の例
Python における Self とは: 実際の例
このチュートリアルでは、DAX Studio のさまざまなキーワードと関数について、それぞれの具体的なクエリ例とともに学習します。
具体的には、ORDER BY キーワードと START AT キーワード、TOPNSKIP 関数と ADDMISSINGITEMS 関数について学習します。
目次
DAX クエリの例: ORDER BY キーワード
ORDER BYキーワードを使用すると、データセットを並べ替えることができます。
基本的な例
たとえば、ORDER BY キーワードを使用すると、列をアルファベット順に並べ替えることができます。
1行目のデータが「A」で始まっていることがわかります。DAX Studio のデフォルトの並べ替え順序は昇順です。
データを降順で表示したい場合は、DESCと記述します。したがって、この例では、ブランド列は A の代わりに「W」で始まります。
同様に、昇順に戻したい場合は、ASCと記述します。複数の列を一度に並べ替えることもできます。これを行うには、必要な列を各列をカンマで区切って記述します。
現実世界の例
次に、ORDER BY キーワードを使用した簡単な実際のアプリケーションを見てみましょう。これは、 TABLE キーワード チュートリアルで使用されているのと同じ例です。
このテーブルは 3 つの列を返していることがわかります。1 つ目は製品タイプで、「Boring」と「Trendy」で構成されます。2 番目の列には、製品タイプ別の総売上高が表示されます。3 番目の関数は、売上の割合を返します。
この例では、製品タイプを並べ替える新しい列を作成する必要があります。したがって、ステートメントの後に、COLUMN キーワードを記述し、次に作成する列の名前を記述します。
この列の式は IF 構文と同じですが、「トレンディ」と「退屈」の代わりに、この列にはトレンディには「1」、退屈には「2」が表示されます。
表にこの列を表示するには、EVALUATE 構文の下にこの列を記述します。
新しい列「Product Type Sort」が数値 1 と 2 で構成されるテーブルに追加されていることがわかります。
この列を並べ替えるには、構文の後にORDER BYキーワードを記述します。次に、列名の後に、列の並べ替え順序に応じて ASC または DESC を記述します。
DAX クエリの例: START AT
次に学習するのは、START ATキーワードです。
START AT は非推奨のキーワードです。ほとんどの DAX クエリでは、その使用は推奨されません。ただし、これを利用する DAX コードがまだ見つかる可能性があります。したがって、それが何であり、どのような場合に使用できるかを知ることが依然として重要です。
基本的な例
まず、EVALUATE キーワードを記述します。この例では、Products テーブルを使用します。START AT を記述する前に、まずORDER BYを使用してから、含める列を指定します。
その後、「START AT」と書くことができます。この構文は、ORDER BY で列を記述した場合と同様の順序に従います。この例では、Products Key 列は「2」から始まり、Brand 列は「Contoso」から始まります。
F5 キーを押すと、指定した列がクエリの方向に従っていることを結果テーブルで確認できます。
次に、別の列が追加されたときに何が起こるかを見てみましょう。この場合、カラー列は「シルバー」から始まる必要があります。
このクエリを実行すると、[色] 列の最初のエントリが「白」であることがわかります。START AT を使用した場合、結果が常にすべての条件に従うことは保証されません。
この例では、Products テーブルに 2、Contoso、Silver がすべて同じ行に含まれるインスタンスはありません。代わりに、DAX エンジンは、作成したクエリに最も一致するものを作成しようとします。
複雑な例
別の例を見てみましょう。
EVALUATE の後に、ORDER BY キーワードを記述し、その後に指定した 3 つの列を記述します。その後、START ATを書き込みます。この場合、Color 列は「Red」から始まり、Gender 列は「M」から始まり、Store Key 列は「2」から始まる必要があります。
クエリを実行すると、DAX エンジンが指定されたパラメーターと一致するよう最善を尽くしたことがわかります。
結果では、2 つの列が正しいことがわかりますが、ストア キー列は 2 ではなく 199 から始まります。これは、この例のデータ モデルにはストア キー 2 が存在しないためです。
DAX エンジンが遅い
「ホーム」タブの下にある「サーバータイミング」ボタンをクリックします。
新しいタブが下部に表示されます。「実行」ドロップダウン矢印にある「キャッシュをクリアしてから実行」ボタンをクリックします。
クエリの実行に DAX Studio 142 ミリ秒かかることがわかります。START AT 構文を削除してコードを再度実行すると、実行にかかる時間はわずか 11 ミリ秒であることがわかります。
START AT 構文がある場合、クエリはCallBackDataIDと呼ばれる DAX エンジンの動作を呼び出すため、実行に時間がかかります。
START AT を使用すると、コードが非常に遅くなります。使用する必要がない場合は、使用しないほうがよいでしょう。
これは、作成している DAX コードの全体的なパフォーマンスに大きな影響を与えます。このため、他の同様の関数を使用するのが最善です。
DAX クエリの例: TOPNSKIP 関数
このチュートリアルで次に学習するのは、TOPNSKIP関数です。に似ていますが、追加のパラメーターとともに微妙な違いが 1 つあります。これをさらに理解するために、例を見てみましょう。
TOPN vs TOPNSKIP
まず、EVALUATE キーワードを記述します。次に、以下の TOPN 引数を記述して、Products テーブルの上位 100 行を表示します。
この表も、プロダクト キー列に関して昇順で並べ替えられています。
ここで、TOPN を TOPNSKIP に置き換えます。2 番目の引数には、スキップする行数を指定します。この例では10が指定されています。
これを実行すると、プロダクト キー列が 11 で始まり 110 で終わることがわかります。計算テーブル内または表形式データ モデル内では TOPNSKIP 関数を使用できないことに注意してください。
もう一つの例
次の例では、Customer テーブルの上位 5000 行を表示してみましょう。このテーブルは、[性別] 列に関して昇順で並べ替えられています。
TOPN 関数を使用すると、テーブルが 9,518 行を返すことがわかります。これは、上位 5000 行のみを表示するように指定した場合でも、一部のデータはフィルターされずに残ったことを意味します。
ただし、TOPNSKIP 関数を使用すると、テーブルが Gender 列の最初の 5,000 行のみを返すことがわかります。
したがって、顧客の性別列に特定の性別に関する複数のルールがある場合でも、TOPNSKIP 関数は最初の 5,000 行のみを返します。TOPN 関数を使用した場合、この結果は保証されません。
DAX クエリの例: ADDMISSINGITEMS 関数
最後に、DAX Studio のADDMISSINGITEMS関数を見てみましょう。
SUMMARIZECOLUMNS を使用すると、デフォルトでは結果から空白行を削除しようとします。たとえば、製品の色、製品のブランド、顧客の性別を要約するクエリを作成できます。
F5 キーを押すと、テーブルが 3 つの列を返すことがわかります。性別欄は、男性、女性、空白の 3 種類の性別で構成されます。空白は会社を表します。333 行が返されていることもわかります。
ただし、Total Sales 列を作成すると、SUMMARIZECOLUMNS フィルターによって Total Sales の空白の値が含まれる行が削除されます。テーブルには 333 行ではなく、323 行のみが含まれるようになりました。
これらの行を戻すには 2 つのオプションがあります。最初のオプションは、総売上高の後にゼロを追加することです。結果では、10 行が Total Sales にゼロ値を返していることがわかります。
ただし、このオプションが常に最良の結果を生み出すとは限りません。代わりに、この問題を解決するために使用できる特定の関数、ADDMISSINGITEMS 関数があります。
この関数を使用するには、これを EVALUATE の後に配置します。最初の引数に列を記述します。これらの列を SUMMARIZECOLUMNS の groupBy パラメーターに貼り付ける必要もあります。
このクエリを実行すると、テーブルから 333 行が返されることがわかります。
Total Sales 列を並べ替えてゼロを削除すると、テーブルの Total Sales 列の下に空白の値が返されます。
したがって、テーブルは、SUMMARIZECOLUMNS 関数によって削除された行に対して、ゼロを報告する代わりに空白を返します。
ADDMISSINGITEMS と FILTER の使用
ADDMISSINGITEMS関数をと組み合わせて使用することもできます。たとえば、「Tailspin Toys」を含む行をフィルターで除外してみましょう。クエリでは、Brand 列に ( <> ) Tailspin Toys を含めてはいけないとしています。
F5 キーを押すと、テーブルが 331 行のみを返すことがわかります。そのため、「Tailspin Toys」ブランドを含む 2 行が削除されました。
結論
このチュートリアルで説明する 2 つのキーワードと 2 つの関数は、DAX Studio でクエリを作成するときに知っておく必要がある基本的な知識です。これらは、より複雑な現実世界のアプリケーションを扱うときに役立ちます。
DAX Studio は、DAX クエリを実行および分析するための強力なツールです。将来、高度なクエリを簡単に処理できるように、このソフトウェアのコーディングの基本を学習することが重要です。
LuckyTemplates エキスパート
Python における Self とは: 実際の例
R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。
この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。
このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。
この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。
LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。
LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。
このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。
これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。
LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて