Menu
Coddy logo textTech

PARTITION & ORDER

Parte da seção Fundamentos do Journey de SQL da Coddy — lição 60 de 72.

Também podemos combinar PARTITION BY com ORDER BY. Por exemplo, considere a seguinte table1:

idtype
132t1
52t2
92t1
154t3
198t1
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1

Isso numerará as linhas em ordem ascendente pelo id de cada tipo:

idtyperow_num
132t12
52t21
92t11
154t31
198t13

Agora, o id 132 tem row_num 2 porque é maior que 92 e menor que 198 (de todas as linhas do tipo t1).

challenge icon

Desafio

Fácil

Tabelas e colunas disponíveis:

  • <strong>doors</strong>: <strong>id</strong>, <strong>publication_year</strong>
  • <strong>doors_specs</strong>: <strong>id</strong>, <strong>country</strong>, <strong>color</strong>

Escreva uma consulta SQL para analisar a sequência de cores das portas dentro de cada país, ordenada por ano de publicação. Para cada especificação de porta, mostre:

  • O país
  • A cor
  • O ano de publicação
  • Um número representando a ordem das cores dentro de cada país com base no ano de publicação. Chame esta coluna color_sequence_number

Folha de consulta

Você pode combinar PARTITION BY com ORDER BY para numerar linhas dentro de cada partição em uma ordem específica:

SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1

Isso numera as linhas em ordem crescente por id dentro de cada grupo type. Cada partição reinicia a numeração a partir de 1.

Experimente você mesmo

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