События
Присоединяйтесь к нам в FabCon Vegas
31 мар., 23 - 2 апр., 23
Конечное событие Microsoft Fabric, Power BI, SQL и ai community. 31 марта по 2 апреля 2025 г.
Зарегистрироваться сегодняЭтот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Программное обеспечение для построения отчетов, такое как Power BI and Excel, запускает запросы DAX при отображении визуальных элементов в отчете, or добавлении поля в таблицу, and и DAX запросы корректируются при применении фильтра filter. Анализатор производительности в Power BI Desktop может показать эти DAX запросы andeven запускать их в представлении запросов DAX.
С помощью
DAX запросы возвращают результаты в виде таблицы right в средстве, что позволяет быстро создавать and тестировать производительность формул DAX в мерах, or просто просматривать данные в семантической модели. INFO and INFO. Функции VIEW DAX также могут получать сведения о семантической модели, например список таблиц, столбцов, метрик, and и многое другое.
Прежде чем изучать запросы, важно иметь четкое понимание основ DAX. If если вы еще этого не сделали, обязательно посмотрите обзор DAX.
DAX запросы имеют простой синтаксис, состоящий только из одного обязательного ключевого слова, EVALUATE. за EVALUATE следует табличное выражение, например функция DAXor имени таблицы, которая при запуске выводит таблицу результатов. К табличным выражениям, выводяющим таблицу результатов, относятся:
Существует несколько необязательных ключевых слов, относящихся к запросам DAX: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE, and COLUMN.
На самом базовом уровне запрос DAX — это оператор EVALUATE
, содержащий табличное выражение. Требуется хотя бы одна запись EVALUATE, но запрос может содержать любое количество EVALUATEstatements.
EVALUATE <table>
Срок | Определение |
---|---|
table |
Табличное выражение. |
EVALUATE
'Sales Order'
Возвращает all строку and столбец из таблицы "Заказ на продажу" в виде результирующей таблицы. Это может быть ограничено посредством использования TOPNorFILTERи упорядочивания and с помощью ORDER BY.
Необязательное ключевое слово ORDER BY
определяет один or больше столбцов в выражениях запроса or, используемых для сортировки результатов запроса. Любое выражение, которое можно оценить для каждой строки результата, допустимо. Любой столбец в самом запросе также является допустимым.
Сортировка по свойству столбца в семантических моделях not применяется к результатам запроса DAX. If столбец должен быть отсортирован по другому столбцу в модели, например в случае Month имени, сортировка по столбцу также должна быть включена в запрос DAX, который будет использоваться в ORDER BY.
EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]]
Срок | Определение |
---|---|
expression |
Любое выражение DAX, возвращающее один скалярный value, or столбец, включенный в запрос DAX. |
ASC |
(по умолчанию) Порядок сортировки по возрастанию. |
DESC |
Порядок сортировки по убыванию. |
EVALUATE
SUMMARIZECOLUMNS(
// Group by columns
'Date'[Month Name],
'Date'[Month of Year],
'Product'[Category],
// Optional filters
FILTER(
VALUES('Product'[Category]),
[Category] = "Clothing"
),
// Measures or explicit DAX formulas to aggregate and analyze the data by row
"Orders", [Orders],
"Avg Profit per Order", DIVIDE(
[Total Sales Profit],
[Orders]
)
)
// DAX queries do not use sort order defined in Power BI,
// sort by columns must be included in the DAX query to be used in order by
ORDER BY 'Date'[Month of Year] ASC
Возвращает заказы одежды andaverage прибыль на заказ по month, в порядке возрастания по month, в виде таблицы результатов.
TOPN выполняет ли not выбор указанного количества строк в соответствии с порядком сортировки, указанным в ORDER BY? Вместо этого TOPN имеет собственный синтаксис, чтобы дополнительно указать сортировку до возврата первых 100 строк. ORDER BY сортирует только таблицу результатов, возвращаемую TOPN.
EVALUATE
TOPN(
100,
'Sales Order',
// The way the data is sorted before the top 100 rows are selected
'Sales Order'[SalesOrderLineKey], ASC
)
// The way the data is sorted for the results
ORDER BY
'Sales Order'[Sales Order] ASC,
'Sales Order'[Sales Order Line] ASC
Возвращает первые 100 заказов по продажам, отсортированных по возрастанию SalesOrderLienKey, а затем сортирует результаты first по заказу на продажу, а затем по строке заказов на продажу.
Необязательное ключевое слово START AT
используется в предложении ORDER BY
. Он определяет value, с которого начинаются результаты запроса.
EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]
[START AT {<value>|<parameter>} [, …]]]
Срок | Определение |
---|---|
value |
Константа value. Не может быть выражением. |
parameter |
Имя параметра в инструкции XMLA, которому предшествует символ @ . |
Аргументы START AT соответствуют столбцам в конструкции ORDER BY "один к одному". В предложении START AT может быть столько аргументов, сколько в предложении ORDER BY, но not больше. Аргумент first в START AT определяет начальный value в первом столбце из столбцов ORDER BY. Аргумент second в START AT определяет начальный value во втором столбце среди столбцов ORDER BY в строках, которые соответствуют firstvalue для столбца 1.
EVALUATE
'Sales Order'
ORDER BY 'Sales Order'[Sales Order] ASC
// Start at this order, orders before this order will not be displayed
START AT "SO43661"
Возвращает all столбцы из таблицы "Заказ продаж" в порядке возрастания по заказу на продажу, начиная с SO43661. Строки перед этим заказом на продажу not включены в таблицу результатов.
Необязательное ключевое слово DEFINE
содержит одно or больше определений вычисляемых сущностей, которые существуют только для duration запроса. В отличие от EVALUATE
, в запросе DAX может быть только один блок DEFINE
с более чем одним or определением.
DEFINE
должны предшествовать and инструкции firstEVALUATE
допустимы для allEVALUATEstatements в запросе. Определения могут быть переменными, мерами, таблицами1, and столбцами1. Определения могут ссылаться на другие определения, которые появляются перед or, предшествуя текущему определению. Хотя бы одно определение является обязательным, if ключевое слово DEFINE
включается в запрос.
DEFINE MEASURE
— это распространенный сценарий для создания новых мер, or редактирования существующих мер в семантической модели. Если measure уже существует в модели, запрос DAX будет использовать формулу measureDAX, определенную в запросе. Это полезно для тестирования мер с помощью запроса DAX перед обновлением модели.
DEFINE MEASURE
также полезно создать дополнительный анализ с формулами DAX для конкретного запроса DAX, где вы можете not иметь разрешение на добавление модели measureor необходимо not его в модели.
[DEFINE
(
(MEASURE <table name>[<measure name>] = <scalar expression>) |
(VAR <var name> = <table or scalar expression>) |
(TABLE <table name> = <table expression>) |
(COLUMN <table name>[<column name>] = <scalar expression>) |
) +
]
(EVALUATE <table expression>) +
Срок | Определение |
---|---|
Entity |
MEASURE, VAR, TABLE1, or COLUMN1. |
name |
Имя для measure, var, определения таблицы, колонки or. Это не может быть выражением. Имя not должно быть уникальным. Имя существует только для duration запроса. |
expression |
Любое выражение DAX, которое возвращает таблицу or или скалярное значение value. Выражение может использовать любую из определенных сущностей.
If необходимо convert преобразовать скалярное выражение в табличное выражение, обернуть выражение внутри конструктора таблицы с фигурными скобками {} , or использовать функцию ROW() для возврата таблицы с одной строкой. |
[1] Предупреждение: определения запроса and таблицы столбцов предназначены исключительно для внутреннего использования. Хотя вы можете использовать выражения define TABLE and COLUMN для запроса без синтаксической ошибки error, они могут вызвать ошибки времени выполнения и поэтому не рекомендуются and и not.
Запрос DAX может иметь несколько EVALUATEstatements, но может иметь только одну инструкцию DEFINE. Определения в инструкции DEFINE могут применяться к любым EVALUATEstatements в запросе.
В инструкции DEFINE требуется по крайней мере одно определение.
Measure определения для модели запроса переопределяют меры с тем же именем, но используются только в рамках самого запроса. Они not повлияют на measureмодель.
VAR имена имеют уникальные ограничения. Дополнительные сведения см. в разделе VAR — параметры.
DEFINE
VAR _firstyear = MIN('Date'[Fiscal Year])
VAR _lastyear = MAX('Date'[Fiscal Year])
TABLE 'Unbought products' = FILTER('Product', [Orders] + 0 = 0)
COLUMN 'Unbought products'[Year Range] = _firstyear & " - " & _lastyear
MEASURE 'Unbought products'[Unbought products] = COUNTROWS('Unbought products')
EVALUATE
'Unbought products'
EVALUATE
{[Unbought products]}
Возвращает таблицу, определенную в запросе DAX, чтобы отобразить некупленные продукты с дополнительным столбцом, который ссылается на заданные переменные. Кроме того, measure определяется and как count строки непроданных продуктов.
DEFINE
MEASURE 'Pick a sales measure'[Orders] = DISTINCTCOUNT('Sales Order'[Sales Order])
MEASURE 'Pick a sales measure'[Customers] = CALCULATE(
COUNTROWS(Customer),
FILTER(
'Sales',
[Orders] > 0
)
)
MEASURE 'Pick a sales measure'[Orders per Customer] = DIVIDE(
[Orders],
[Customers],
0
)
EVALUATE
SUMMARIZECOLUMNS(
'Date'[Fiscal Year],
"Orders", [Orders],
"Customers", [Customers],
"Orders per Customer", [Orders per Customer]
)
Возвращает таблицу, оценивающую три заданные меры, чтобы продемонстрировать результаты по финансовым year. All измерения также существуют в модели, and Заказы на Клиента модифицированы в запросе DAX.
Четко заданное заявление запроса DAX можно параметризовать and, а затем использовать снова and, изменяя только параметр values.
Метод
Ссылайтесь на параметры XMLA, добавляя префикс @
к имени параметра. Любое место в синтаксисе, где разрешено value, value можно заменить вызовом параметра.
All параметры XMLA имеют текстовый тип.
Важно!
Параметры, определённые в разделе параметров andnot, используемые в элементе <STATEMENT>
generate, в ответе error в XMLA.
Параметры, используемые andnot, определенные в элементе <Parameters>
generate ответа error в XMLA.
События
Присоединяйтесь к нам в FabCon Vegas
31 мар., 23 - 2 апр., 23
Конечное событие Microsoft Fabric, Power BI, SQL и ai community. 31 марта по 2 апреля 2025 г.
Зарегистрироваться сегодняОбучение
Схема обучения
Использование DAX в Power BI Desktop - Training
В этой схеме обучения представлены выражения анализа данных (DAX) и предоставляются базовые навыки, необходимые для улучшения семантических моделей с помощью вычислений. Схема начинается с описания структуры модели Power BI Desktop и возможностей ее улучшения с помощью вычислений DAX. Затем вы узнаете, как можно создавать формулы DAX и различные типы вычислений модели, включая вычисляемые таблицы и столбцы, а также меры. Здесь также описываются контексты оценки, а в следующих уроках показано, как создавать
Сертификация
Демонстрация методов и рекомендаций, которые соответствуют бизнес-и техническим требованиям для моделирования, визуализации и анализа данных с помощью Microsoft Power BI.