Menu
CoddyTech

Criterio PARTITION BY

Parte de la sección Fundamentos del Journey de SQL de Coddy. Lección 59 de 72.

Otra opción para la cláusula OVER () es PARTITION BY

Nos permite numerar las filas de cada grupo por separado 

Por ejemplo:

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

Esto generará una columna que numera las filas de cada tipo por separado, en orden de id (el resultado siguiente se muestra agrupado por tipo):

idtyperow_num
92t11
132t12
198t13
52t21
154t31

id 92 tiene row_num 1 porque es el id más pequeño en type t1.

Nota: ROW_NUMBER() requiere una cláusula ORDER BY dentro de OVER() para determinar cómo deben numerarse las filas dentro de cada partición.

Incluso podemos especificar varias columnas dentro de PARTITION BY:

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

Desafío

Fácil

Tablas y columnas disponibles:

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

Una fábrica está construyendo puertas. Necesita numerar las puertas para cada combinación de country y color que tenga un publication_year menor que 2000. Nombra esta columna row_num.

Las puertas deben numerarse dentro de cada grupo en orden ascendente según su id. Las puertas sin especificaciones deben ignorarse. Ordena el resultado final en orden ascendente según el id. 

Pruébalo tú mismo

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de SQL