Menu
Coddy logo textTech

PARTITION BY criterion

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 para 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 numerará cada tipo dentro de sí mismo:

idtyperow_num
132t11
52t21
92t11
154t31
198t13

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

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

Incluso podemos especificar múltiples 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:

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

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

Las puertas deben numerarse dentro de cada grupo en orden ascendente por su id. Las puertas sin especificaciones deben ignorarse. Ordena el resultado final en orden ascendente por 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