Функция TOPN (DAX)

Возвращает первые N строк указанной таблицы.

Синтаксис

TOPN(<n_value>, <table>, <orderBy_expression>, [<order>[, <orderBy_expression>, [<order>]]…])

Параметры

  • n_value
    Число возвращаемых строк. Любое выражение DAX, возвращающее скалярное значение, вычисляемое несколько раз (для каждой строки или контекста).

    В разделе примечаний описываются сценарии, в которых количество возвращаемых строк может превышать n_value.

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

  • table
    Любое выражение DAX, возвращающее таблицу данных, из которой будут извлекаться первые «n» строк.

  • orderBy_expression
    Любое выражение DAX, результирующее значение которого используется для сортировки таблицы и вычисляется для всех строк таблицы table.

  • order
    Необязательное значение, определяющее порядок сортировки значений orderBy_expression, по возрастанию или убыванию:

    value

    альтернативное значение

    Описание

    0 (ноль)

    FALSE

    Сортировка по убыванию значений order_by.

    Это значение по умолчанию, если не указан параметр order.

    1

    TRUE

    Ранги order_by в порядке по возрастанию.

Возвращаемое значение

Таблица, содержащая первые N строк из таблицы table или пустая таблица, если значение n_value меньше или равно 0. Для строк не обязательно применяется определенный порядок сортировки.

Замечания

  • При наличии идентичных значений в order_by в N-й строке таблицы возвращаются все строки с идентичными значениями. При наличии идентичных значений в N-ой строке функция может вернуть более n строк.

  • Если n_value равно 0 или меньше, функция TOPN возвращает пустую таблицу.

  • Функция TOPN не выполняет сортировку результатов.

Пример

В следующем образце создается мера для продаж 10 первых продуктов в списке продаж.

=SUMX(TOPN(10, SUMMARIZE(Product, [ProductKey], “TotalSales”, SUMX(RELATED(InternetSales_USD[SalesAmount_USD]), InternetSales_USD[SalesAmount_USD]) + SUMX(RELATED(ResellerSales_USD[SalesAmount_USD]), ResellerSales_USD[SalesAmount_USD]))