Поделиться через


Создание вычисляемой таблицы

Применимо к: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Вычисляемая таблица представляет собой объект, вычисляемый на основе выражения или запроса DAX и наследуемый (полностью или частично) от других таблиц в той же модели.

Основной задачей, решаемой с помощью вычисляемых таблиц, является подключение ролевого измерения в определенном контексте, чтобы представить его в виде структуры запроса в клиентских приложениях. Вы можете вспомнить, что ролевое измерение — это просто таблица, отображаемая в нескольких контекстах. Классическим примером является таблица Date, которая в зависимости от отношения внешнего ключа проявляется как OrderDate, ShipDate или DueDate. Создав вычисляемую таблицу для дат отгрузки явным образом, вы получаете отдельную таблицу с полной функциональностью, доступную для запросов. Другое использование включает настройку отфильтрованного набора строк, подмножества или надмножества столбцов из других существующих таблиц. Это позволяет создавать варианты таблицы для конкретных сценариев, сохраняя исходную таблицу неизменной.

Для максимально эффективного использования вычисляемых таблиц потребуются определенные знания DAX. При работе с выражениями для таблицы может помочь узнать, что вычисляемая таблица содержит одну секцию с DAXSource, где выражение является выражением DAX.
Для каждого столбца, возвращаемого выражением, имеется один столбец CalculatedTableColumn, где SourceColumn — это имя возвращенного столбца (аналогично с DataColumn для невычисляемых таблиц).

По крайней мере одна таблица должна существовать, прежде чем можно будет создать вычисляемую таблицу. Если вычисляемая таблица создается как автономный объект вычисляемой таблицы, можно сначала создать таблицу, импортировав из источника данных файла (csv, xls, xml). Файл, из который вы импортируете, может иметь один столбец и одно значение. Затем эту таблицу можно скрыть.

Создание вычисляемой таблицы

  1. Сначала убедитесь, что табличная модель имеет уровень совместимости 1200 или выше. Он указан в свойстве Уровень совместимости модели в SSDT.

  2. Перейдите в представление данных. В представлении диаграммы создать вычисляемую таблицу нельзя.

  3. Выберите Таблица>Новая вычисляемая таблица.

  4. Введите или вставьте выражение DAX (некоторые идеи см. ниже).

  5. Дайте таблице имя.

  6. Создайте связи с другими таблицами в модели. Если вам нужна помощь с этим шагом, см. раздел Создание связи между двумя таблицами .

  7. Добавьте ссылки на таблицу в вычислениях или выражениях вашей модели либо воспользуйтесь функцией Анализ в Excel для нерегламентированного анализа данных.

Репликация ролевого измерения

В строке формулы введите формулу DAX, которая получает копию другой таблицы. Когда вычисляемая таблица будет заполнена, присвойте ей описательное имя и настройте отношение, которое использует внешний ключ, относящийся к роли. Например, в базе данных Adventure Works можно создать вычисляемую таблицу дат выполнения и использовать DueDateKey в качестве основания связи с таблицей фактов.

=DimDate  

Суммирование или фильтрация

В строке формул введите выражение DAX, которое фильтрует, суммирует или иным образом управляет моделью для хранения нужных строк. В этом примере выполняется группировка по цвету и валюте.

=SUMMARIZECOLUMNS(DimProduct[Color]  
, DimCurrency[CurrencyName]   
, "Sales" , SUM(FactInternetSales[SalesAmount])  
)  

Супермножество для столбцов из нескольких таблиц

В строке формул введите выражение DAX, которое объединяет столбцы из нескольких таблиц. В этом случае выходные данные запроса перечисляют категории продуктов для каждой валюты.

=CROSSJOIN(DimProductCategory, DimCurrency)  

См. также раздел

Уровень совместимости
Выражения анализа данных (DAX) в службах Analysis Services
Основные сведения о DAX в табличных моделях