Menu
Coddy logo textTech

Função ROW_NUMBER

Parte da seção Fundamentos do Journey de SQL da Coddy. Lição 57 de 72.

As funções de janela realizam cálculos em um conjunto de linhas da tabela relacionadas à linha atual. Diferentemente das funções de agregação regulares, as funções de janela não reduzem os resultados a uma única linha.

Elas são particularmente úteis quando você precisa:

  • Calcular totais acumulados
  • Classificar itens dentro de grupos
  • Comparar linhas atuais com linhas anteriores/seguintes
  • Analisar tendências ao longo de períodos

Por exemplo, aqui estão alguns exemplos do mundo real de casos de uso das funções de janela:

  • Análise de vendas
    • Calcule as vendas acumuladas até cada ano (1995, 1997, 1999)
    • Encontre os produtos mais vendidos de cada trimestre
  • Estatísticas esportivas
    • Acompanhe a contagem de medalhas olímpicas ao longo de diferentes anos
    • Identifique os atletas líderes em cada período de competição (2000, 2004, 2008)

ROW_NUMBER() é uma das funções de janela mais simples. Ela atribui um número sequencial exclusivo a cada linha no conjunto de resultados. Veja como usá-la:

SELECT column1, column2,
       ROW_NUMBER() OVER ([PARTITION BY column] [ORDER BY column]) as row_num
FROM table_name;

É obrigatório usar a cláusula OVER com ROW_NUMBER(): ROW_NUMBER() OVER ()

Por exemplo:

SELECT product_name, sale_date,
       ROW_NUMBER() OVER () as row_num
FROM sales;

Isso adiciona uma coluna row_num que conta de 1 até o número total de linhas.

Observação: a cláusula OVER pode conter instruções de ordenação e particionamento para controlar como a numeração funciona.

challenge icon

Desafio

Fácil

Tabelas e colunas disponíveis:

  • liquids: id, density

Busque todos os líquidos com densidade superior a 5.677.

Numere o resultado (use a função ROW_NUMBER()) e chame esta coluna de row_num

Experimente você mesmo

-- Numere cada linha do resultado filtrado usando uma função de janela
SELECT id, density, ____ as row_num
FROM liquids
WHERE density > ____
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Playground de SQL