# TOPN

Returns the top N rows of the specified table.

## Syntax

TOPN(<N_Value>, <Table>, <OrderBy_Expression>, [<Order>[, <OrderBy_Expression>, [<Order>]]…])


### Parameters

Parameter Definition
N_Value The number of rows to return. Any DAX expression that returns a scalar value, where the expression is to be evaluated multiple times (for each row/context). See Remarks to better understand when the number of rows returned could be larger than n_value.
Table Any DAX expression that returns a table of data from where to extract the top 'n' rows. See Remarks to better understand when an empty table is returned.
OrderBy_Expression Any DAX expression where the result value is used to sort the table and evaluated for each row of table.
Order (Optional) A value that specifies how to sort OrderBy_Expression values:

- 0 (zero) or FALSE. Sorts in descending order of values of Order. Default when Order parameter is omitted.

- 1 or TRUE. Ranks in ascending order of OrderBy.

## Return value

A table with the top N rows of Table or an empty table if N_Value is 0 (zero) or less. Rows are not sorted in any particular order.

## Remarks

• If there is a tie, in Order_By values, at the N-th row of the table, then all tied rows are returned. Then, when there are ties at the N-th row the function might return more than n rows.

• If N_Value is 0 (zero) or less, TOPN returns an empty table.

• TOPN does not guarantee any sort order for the results.

• This function is not supported for use in DirectQuery mode when used in calculated columns or row-level security (RLS) rules.

## Example

The following measure formula returns the top 10 sold products by sales amount.

= SUMX(
TOPN(
10,
SUMMARIZE(
InternetSales,
InternetSales[ProductKey],
"TotalSales", SUM(InternetSales[SalesAmount])
),
[TotalSales], DESC
),
[TotalSales]
)