Выберите строку со значением MAX для каждой категории Power BI / DAX - PullRequest
1 голос
/ 22 апреля 2020

Как выбрать строку с максимальным значением для категории в DAX / SSAS? Предположим, у нас есть таблица:

+ ---------- + ------- + ------------ +

| Категория | Значение | Дата |

+ ---------- + ------- + ------------ +

| яблоки | 1 | 2018-07-01 |

| яблоки | 2 | 2018-07-02 |

| яблоки | 3 | 2018-07-03 |

| бананы | 7 | 2018-07-04 |

| бананы | 8 | 2018-07-05 |

| бананы | 9 | 2018-07-06 |

+ ---------- + ------- + ------------ +

Желаемые результаты:

+ ---------- + ------- + ------------ +

| Категория | Значение | Дата |

+ ---------- + ------- + ------------ +

| яблоки | 3 | 2018-07-03 |

| бананы | 9 | 2018-07-06 |

+ ---------- + ------- + ------------ +

1 Ответ

0 голосов
/ 22 апреля 2020

Из вашего вопроса не ясно, хотите ли вы вернуть таблицу или меру.

Если вам нужно вернуть таблицу, то go с этим:

calculated_table
:=VAR _categoryfirst=
    ADDCOLUMNS (
        VALUES ( 'Table'[Category] ),
        "MinValue", CALCULATE (MIN ( 'Table'[Value] ),ALL ( 'Table'[Value] ))
    )
RETURN
CALCULATETABLE(
    SELECTCOLUMNS('Table',
        "Category", 'Table'[Category]
        "Value",  'Table'[Value]
        "Date",  'Table'[Date]
    ),
    KEEPFILTERS (
        TREATAS (
        _categoryfirst,
        'Table'[Category],
        'Table'[Value]
        )
    )
)

Вместо этого, если вы хотите создать визуализацию таблицы с категорией, значением, датой, показывающей только строку связанный с минимальным значением, я бы go с этим:

measure:=
VAR _categoryfirst=
    CALCULATETABLE(
        ADDCOLUMNS (
        VALUES ( 'Table'[Category] ),
        "MinValue", CALCULATE (MIN ( 'Table'[Value] ),ALL ( 'Table'[Value] ))
        ),
        ALL('Table'[Value]),
        ALL('Table'[Date])
    )
RETURN
CALCULATE(
    MIN('Table'[Value]),
    KEEPFILTERS (
        TREATAS (
        _categoryfirst,
        'Table1'[Category],
        'Table1'[Value]
        )
    )
)
...