Как получить первое значение из отсортированной таблицы в меру? - PullRequest
0 голосов
/ 05 июня 2019

У меня есть таблица DAX с 2 столбцами RANK и VALUE. Мне нужна мера, которая возвращает ЗНАЧЕНИЕ для строки, где RANK является самым низким.

Решение должно быть эффективным, поскольку таблица содержит десятки миллионов строк с различными значениями в столбце VALUE.

Я попытался использовать TOPN, но это возвращает таблицу, а не одно значение. Я попытался использовать MIN, но это вернет самое низкое значение, а не значение с самым низким рейтингом Я не могу использовать LOOKUPVALUE, потому что в моем примере из реальной жизни таблица содержит намного больше столбцов, чем эти 2, и некоторые из этих столбцов будут иметь фильтры, примененные к ним клиентским приложением, и, очевидно, я не знаю этих фильтров во время разработки.

VALUE        RANK     MANY_MORE_COLUMNS ...
100          1        ...
200          2        ...
50           3        ...

В этом случае мне нужно будет вернуть значение 100, поскольку наименьший RANK равен 1.

1 Ответ

1 голос
/ 05 июня 2019

Попробуйте это:

Measure =
CALCULATE (
    MAX ( Table[VALUE] ),
    FILTER ( Table, Table[RANK] = MIN ( Table[RANK] ) )
)

Функция FILTER фильтрует «Таблица» в строке с наименьшим рейтингом. MAX (Таблица [VALUE]) затем возвращает VALUE в этой строке. Несмотря на то, что есть только одна строка, вам нужно использовать функцию, которая возвращает скалярное значение (в данном случае MAX). Функция CALCULATE ожидает здесь скалярное значение в качестве аргумента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...