Klienci raportowania, tacy jak Power BI i Excel, wykonują zapytania języka DAX za każdym razem, gdy pole zostanie umieszczone w raporcie lub po zastosowaniu filtru. Za pomocą programu SQL Server Management Studio (SSMS), programu Power BI Report Builder i narzędzi typu open source, takich jak DAX Studio, można tworzyć i uruchamiać własne zapytania języka DAX. Zapytania języka DAX zwracają wyniki jako tabelę bezpośrednio w narzędziu, umożliwiając szybkie tworzenie i testowanie wydajności formuł języka DAX.
Przed zapoznaniem się z zapytaniami ważne jest, aby mieć solidną wiedzę na temat podstaw języka DAX. Jeśli jeszcze tego nie zrobiono, zapoznaj się z omówieniem języka DAX.
Słowa kluczowe
Zapytania języka DAX mają prostą składnię składającą się tylko z jednego wymaganego słowa kluczowego, EVALUATE i kilku opcjonalnych słów kluczowych: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE i COLUMN. Każde słowo kluczowe definiuje instrukcję używaną przez czas trwania zapytania.
EVALUATE (wymagane)
Na najbardziej podstawowym poziomie zapytanie języka DAX jest instrukcją EVALUATE zawierającą wyrażenie tabeli. Wymagana jest co najmniej jedna instrukcja EVALUATE, jednak zapytanie może zawierać dowolną liczbę instrukcji EVALUATE.
Składnia EVALUATE
EVALUATE <table>
PARAMETRY EVALUATE
Termin
Definicja
table
Wyrażenie tabeli.
Przykład EVALUATE
EVALUATE
'Internet Sales'
Zwraca wszystkie wiersze i kolumny z tabeli Internet Sales jako tabelę.
ORDER BY (opcjonalnie)
Opcjonalne słowo kluczowe ORDER BY definiuje jedno lub więcej wyrażeń używanych do sortowania wyników zapytania. Każde wyrażenie, które można ocenić dla każdego wiersza wyniku, jest prawidłowe.
SKŁADNIA ORDER BY
EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]]
PARAMETRY ORDER BY
Termin
Definicja
wyrażenie
Dowolne wyrażenie języka DAX zwracające pojedynczą wartość skalarną.
EVALUATE
'Internet Sales'
ORDER BY
'Internet Sales'[Order Date]
Zwraca wszystkie wiersze i kolumny z tabeli Internet Sales w kolejności rosnącej według daty zamówienia jako tabeli.
START AT (opcjonalnie)
Opcjonalne słowo kluczowe START AT jest używane wewnątrz klauzuli ORDER BY . Definiuje wartość, na której zaczynają się wyniki zapytania.
START AT Składnia
EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]
[START AT {<value>|<parameter>} [, …]]]
PARAMETRY START AT
Termin
Definicja
wartość
Stała wartość. Nie można być wyrażeniem.
parametr
Nazwa parametru w instrukcji XMLA poprzedzona znakiem @ .
ZACZNIJ OD UWAGI
Argumenty START AT mają korespondencję jeden do jednego z kolumnami w klauzuli ORDER BY. W klauzuli START AT może istnieć tyle argumentów, ile istnieje w klauzuli ORDER BY, ale nie więcej. Pierwszy argument w funkcji START AT definiuje wartość początkową w kolumnie 1 kolumn ORDER BY. Drugi argument w funkcji START AT definiuje wartość początkową w kolumnie 2 kolumn ORDER BY w wierszach spełniających pierwszą wartość dla kolumny 1.
PRZYKŁAD START AT
EVALUATE
'Internet Sales'
ORDER BY
'Internet Sales'[Sales Order Number]
START AT "SO7000"
Zwraca wszystkie wiersze i kolumny z tabeli Internet Sales w kolejności rosnącej według numeru zamówienia sprzedaży, począwszy od SO7000.
DEFINE (opcjonalnie)
Opcjonalne słowo kluczowe DEFINE wprowadza co najmniej jedną definicję jednostki obliczeniowej, która istnieje tylko przez czas trwania zapytania. Definicje poprzedzają instrukcję EVALUATE i są prawidłowe dla wszystkich instrukcji EVALUATE w zapytaniu. Definicje mogą być zmiennymi, miarami, tabelami1 i kolumnami1. Definicje mogą odwoływać się do innych definicji, które pojawiają się przed lub po bieżącej definicji. Co najmniej jedna definicja jest wymagana, jeśli słowo kluczowe DEFINE jest zawarte w zapytaniu.
Nazwa miary, var, tabeli lub definicji kolumny. Nie może to być wyrażenie. Nazwa nie musi być unikatowa. Nazwa istnieje tylko przez czas trwania zapytania.
wyrażenie
Dowolne wyrażenie języka DAX zwracające tabelę lub wartość skalarną. Wyrażenie może używać dowolnej ze zdefiniowanych jednostek. Jeśli istnieje potrzeba przekonwertowania wyrażenia skalarnego na wyrażenie tabeli, opakuj wyrażenie wewnątrz konstruktora tabeli nawiasami klamrowymi {}lub użyj ROW() funkcji , aby zwrócić pojedynczą tabelę wierszy.
[1]Przestroga: Definicje tabeli i kolumny w zakresie zapytania są przeznaczone tylko do użytku wewnętrznego. Chociaż można zdefiniować wyrażenia TABLE i COLUMN dla zapytania bez błędu składniowego, mogą one powodować błędy środowiska uruchomieniowego i nie są zalecane.
DEFINIOWANIE uwag
Zapytanie języka DAX może zawierać wiele instrukcji EVALUATE, ale może mieć tylko jedną instrukcję DEFINE. Definicje w instrukcji DEFINE mogą być stosowane do dowolnych instrukcji EVALUATE w zapytaniu.
Co najmniej jedna definicja jest wymagana w instrukcji DEFINE.
Definicje miar dla kwerendy zastępują miary modelu o tej samej nazwie, ale są używane tylko w zapytaniu. Nie wpłynie to na miarę modelu.
Nazwy VAR mają unikatowe ograniczenia. Aby dowiedzieć się więcej, zobacz VAR — parametry.
Definiowanie przykładu
DEFINE
MEASURE 'Internet Sales'[Internet Total Sales] =
SUM ( 'Internet Sales'[Sales Amount] )
EVALUATE
SUMMARIZECOLUMNS (
'Date'[Calendar Year],
TREATAS (
{
2013,
2014
},
'Date'[Calendar Year]
),
"Total Sales", [Internet Total Sales],
"Combined Years Total Sales",
CALCULATE (
[Internet Total Sales],
ALLSELECTED ( 'Date'[Calendar Year] )
)
)
ORDER BY [Calendar Year]
Zwraca obliczoną łączną sprzedaż dla lat 2013 i 2014 oraz łączną łączną łączną sprzedaż dla lat 2013 i 2014 jako tabelę. Miara w instrukcji DEFINE, Internet Total Sales, jest używana zarówno w wyrażeniach Total Sales i Combined Years Total Sales.
Parametry w zapytaniach języka DAX
Dobrze zdefiniowana instrukcja zapytania języka DAX może być sparametryzowana, a następnie używana za pomocą tylko zmian w wartościach parametrów.
Odwołuj się do parametrów XMLA, prefiksując nazwę parametru z znakiem @ . Dowolne miejsce w składni, w której dozwolona jest wartość, wartość można zastąpić wywołaniem parametru. Wszystkie parametry XMLA są wpisywane jako tekst.
Ważne
Parametry zdefiniowane w sekcji parameters i nieużytowane w elemecie <STATEMENT> generują odpowiedź o błędzie w pliku XMLA.
Parametry używane i niezdefiniowane w elemecie <Parameters> generują odpowiedź o błędzie w kodzie XMLA.
Ta ścieżka szkoleniowa zawiera wprowadzenie do języka DATA Analysis Expressions (DAX) i zapewnia podstawowe umiejętności wymagane do ulepszania modeli semantycznych za pomocą obliczeń. Zaczyna się od opisu struktury modelu w programie Power BI Desktop i sposobu jej rozszerzania przy użyciu obliczeń DAX. Następnie przedstawiono sposoby pisania formuł w języku DAX i różne typy obliczeń modelu, w tym tabele i kolumny obliczeniowe oraz miary. Wprowadzane są konteksty oceny, a w kolejnych lekcjach pokazano, jak
Demonstrate methods and best practices that align with business and technical requirements for modeling, visualizing, and analyzing data with Microsoft Power BI.