Menu
Coddy logo textTech

Critério PARTITION BY

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

Outra opção para a cláusula OVER () é PARTITION BY

Isso nos permite numerar as linhas de cada grupo separadamente 

Por exemplo:

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

Isso gerará uma coluna que numerará cada tipo dentro de si mesmo:

idtyperow_num
132t11
52t21
92t11
154t31
198t13

id 92 tem row_num 1 porque é o menor id em type t1.

Observação: ROW_NUMBER() requer uma cláusula ORDER BY dentro de OVER() para determinar como as linhas devem ser numeradas dentro de cada partição.

Podemos até especificar várias colunas dentro de PARTITION BY:

ROW_NUMBER() OVER (PARTITION BY type, hue ORDER BY id)
challenge icon

Desafio

Fácil

Tabelas e colunas disponíveis:

  • doors: id, publication_year
  • doors_specs: id, country, color

Uma fábrica está construindo portas. Ela precisa numerar as portas para cada combinação de country e color que tenha um publication_year menor que 2000. Dê a essa coluna o nome row_num.

As portas devem ser numeradas dentro de cada grupo em ordem crescente pelo id. As portas sem especificações devem ser ignoradas. Ordene o resultado final em ordem crescente pelo id

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

Pratique por conta própria: Playground de SQL