ROW_NUMBER function
Parte da seção Fundamentos do Journey de SQL da Coddy. Lição 57 de 72.
As funções de janela (window functions) realizam cálculos em um conjunto de linhas da tabela relacionadas à linha atual. Ao contrário das funções de agregação regulares, as funções de janela não colapsam os resultados em uma única linha.
Eles 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 de tempo
Por exemplo, aqui estão alguns exemplos do mundo real para casos de uso de funções window:
- Análise de Vendas
- Calcular as vendas cumulativas até cada ano (1995, 1997, 1999)
- Encontrar os produtos mais vendidos para cada trimestre
- Estatísticas Esportivas
- Acompanhar a contagem de medalhas olímpicas ao longo de diferentes anos
- Identificar os atletas líderes em cada período de competição (2000, 2004, 2008)
ROW_NUMBER() é uma das funções de window mais simples. Ela atribui um número sequencial único para each row no conjunto de result. 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.
Nota: A cláusula OVER pode conter instruções de ordenação e particionamento para controlar como a numeração funciona.
Desafio
FácilTabelas e colunas disponíveis:
<strong>liquids</strong>:<strong>id</strong>,<strong>density</strong>
Busque todos os líquidos com densidade maior que 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 > ____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
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function8Statistics
Built-In Aggregate Part 1Built-In Aggregate Part 2Grouping Part 1Grouping Part 2Subqueries Part 1Subqueries Part 2Recap - Total Gain ShopRecap - Scooter ShopRecap - Coffee Shop11Window Functions part 1
ROW_NUMBER functionORDER BY criterionPARTITION BY criterionPARTITION & ORDERLEAD & LAG FunctionsRecap - LEAD & LAGRecap - PicturesRecap - Boxes3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columnsPratique por conta própria: Playground de SQL