Skip to main content
Returns a unique row number for each row within the requested window. For more information on usage, please refer to Window Functions.

Syntax

ROW_NUMBER() OVER ([PARTITION BY <partition_by>] ORDER BY <order_by> [ASC|DESC] )

Parameters

ParameterDescriptionSupported input types
<partition_by>The expression used for the PARTITION BY clause.Any
<order_by>The expression used in the ORDER BY clause. This parameter determines what value will be used for ROW_NUMBER.Any

Return Type

INTEGER

Example

In this example, players in each game level are assigned a unique player ID using ROW_NUMBER.
SELECT
    nickname,
    level,
    ROW_NUMBER() OVER (PARTITION BY level ORDER BY nickname ASC) AS player_id
FROM
    (VALUES
        ('kennethpark', 9),
        ('ymatthews', 9),
        ('sabrina21', 10),
        ('burchdenise', 11)
    ) AS t(nickname, level)
ORDER BY level, nickname;
nickname textlevel intplayer_id long
kennethpark91
ymatthews92
sabrina21101
burchdenise111

Rows: 4Execution time: 5.33ms