Rank transformation in mapping data flow
APPLIES TO: Azure Data Factory Azure Synapse Analytics
Tip
Try out Data Factory in Microsoft Fabric, an all-in-one analytics solution for enterprises. Microsoft Fabric covers everything from data movement to data science, real-time analytics, business intelligence, and reporting. Learn how to start a new trial for free!
Data flows are available both in Azure Data Factory and Azure Synapse Pipelines. This article applies to mapping data flows. If you are new to transformations, please refer to the introductory article Transform data using a mapping data flow.
Use the rank transformation to generate an ordered ranking based upon sort conditions specified by the user.
Configuration
Case insensitive: If a sort column is of type string, case will be factored into the ranking.
Dense: If enabled, the rank column will be dense ranked. Each rank count will be a consecutive number and rank values won't be skipped after a tie.
Rank column: The name of the rank column generated. This column will be of type long.
Sort conditions: Choose which columns you're sorting by and in which order the sort happens. The order determines sorting priority.
The above configuration takes incoming basketball data and creates a rank column called 'pointsRanking'. The row with the highest value of the column PTS will have a pointsRanking value of 1.
Data flow script
Syntax
<incomingStream>
rank(
desc(<sortColumn1>),
asc(<sortColumn2>),
...,
caseInsensitive: { true | false }
dense: { true | false }
output(<rankColumn> as long)
) ~> <sortTransformationName<>
Example
The data flow script for the above rank configuration is in the following code snippet.
PruneColumns
rank(
desc(PTS, true),
caseInsensitive: false,
output(pointsRanking as long),
dense: false
) ~> RankByPoints
Related content
Filter rows based upon the rank values using the filter transformation.