разница дакс / мощность между расчетными и вычислимыми функциями - PullRequest
0 голосов
/ 27 апреля 2020

Я новичок в powerbi и пытаюсь понять разницу между CALCULATETABLE и CALCULATE. Я читаю эти 1 , 2 страниц. Мне не понятно Он говорит, что Whereas the CALCULATE function requires as its first argument an expression that returns a single value, the CALCULATETABLE function takes a table of values. Может ли кто-нибудь объяснить это дальше?

update 1

1) кажется, что CALCULATETABLE работает с таблицей данных, а CALCULATE работает с одним значением. Есть ли какая-либо разница в показателях вывода?

2) Кто-нибудь может подсказать, когда лучше использовать одну из этих функций над другой?

1 Ответ

2 голосов
/ 27 апреля 2020

Это самая фундаментальная функция в DAX. Они используются, когда вам нужно изменить контекст, в котором вычисляется выражение (первый параметр функции). Разница между этими двумя функциями связана с типом ввода и типом вывода.

CALCULATE функция принимает в качестве входных данных выражение, которое оценивается как скалярное и возвращает скалярное значение.
CALCULATETABLE функция принимает в качестве входных данных выражение, которое вычисляется в таблице и возвращает таблицу.

Поэтому, если вам нужно изменить контекст, в котором вычисляется скалярное выражение, используйте CALCULATE. Если вам нужно изменить контекст, в котором вычисляется табличное выражение, используйте CALCULATETABLE.

Выражения

Выражение, которое оценивает как скалярное, - это все, что возвращает вам скаляр. Например, SUM () , MIN () , MAX () все они возвращают вам одно значение.
Выражение, которое оценивается как таблица: все, что возвращает вам стол. Например, «Моя таблица» [My Field] и VALUES («My Table» [My Field]) оба возвращают вам таблицу.

Источники

Наконец, как узнать тип ввода и тип вывода дакс-функций? Мой любимый источник - dax.guide

...