- Categorias:
- Sintaxe e uso da função de janela (classificação) 
ROW_NUMBER¶
Retorna um número de linha único para cada linha dentro de uma partição de janela.
O número da linha começa em 1 e continua em sequência.
Sintaxe¶
ROW_NUMBER() OVER (
  [ PARTITION BY <expr1> [, <expr2> ... ] ]
  ORDER BY <expr3> [ , <expr4> ... ] [ { ASC | DESC } ]
  )
Argumentos¶
Nenhum.
Notas de uso¶
- expr1e- expr2especificam a(s) coluna(s) ou expressão(ões) a ser(em) dividida(s). Você pode dividir por 0, 1 ou mais expressões.- Por exemplo, suponha que você esteja selecionando dados entre vários estados (ou províncias) e queira números de linha de 1 a N dentro de cada estado; nesse caso, você pode dividir pelo estado. - Se quiser apenas um único grupo, então omita a cláusula PARTITION BY. 
- expr3e- expr4especificam a(s) coluna(s) ou expressão(ões) usadas para determinar a ordem das linhas. Você pode ordenar por 1 ou mais expressões.- Por exemplo, se quiser listar os agricultores ordenados pela produção de milho, então use a coluna - bushels_produced. Para obter mais detalhes, consulte Exemplos (neste tópico).
Exemplos¶
A consulta abaixo mostra como atribuir números de linha dentro das partições. Neste caso, as partições são bolsas de valores (por exemplo, “N” para “NASDAQ”).
SELECT
    symbol,
    exchange,
    shares,
    ROW_NUMBER() OVER (PARTITION BY exchange ORDER BY shares) AS row_number
  FROM trades;
+------+--------+------+----------+
|SYMBOL|EXCHANGE|SHARES|ROW_NUMBER|
+------+--------+------+----------+
|SPY   |C       |   250|         1|
|AAPL  |C       |   250|         2|
|AAPL  |C       |   300|         3|
|SPY   |N       |   100|         1|
|AAPL  |N       |   300|         2|
|SPY   |N       |   500|         3|
|QQQ   |N       |   800|         4|
|QQQ   |N       |  2000|         5|
|YHOO  |N       |  5000|         6|
+------+--------+------+----------+