Menu
CoddyTech

Función NTILE

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

NTILE(n) numera las filas dividiéndolas en n partes aproximadamente iguales. A menudo se usa para mejorar el rendimiento: enviar grandes cantidades de datos de una sola vez quizá no sea una buena idea, así que esta función permite enviar partes más pequeñas cada vez.

Por ejemplo:

idlevel
14
24
35
46
57
67
SELECT id, level, NTILE(3) OVER (ORDER BY level) as pieces
from table1

Esto devolverá:

idnivelpiezas
141
241
352
462
573
673

Obtuvimos 3 grupos: nivel 4 en el grupo 1, nivel 5 y nivel 6 en el grupo 2, y nivel 7 en el grupo 3.
Cuando el número de filas no es divisible exactamente entre n, NTILE distribuye las filas de la manera más uniforme posible, con los grupos más grandes primero. Por ejemplo, si tienes 9 filas y NTILE(4), la distribución sería:

  • Grupo 1: 3 filas
  • Grupo 2: 2 filas
  • Grupo 3: 2 filas
  • Grupo 4: 2 filas

Esto garantiza que ningún grupo difiera en más de una fila con respecto a cualquier otro grupo y que las filas adicionales se distribuyan primero entre los grupos con números más bajos.

challenge icon

Desafío

Fácil

Tablas y columnas disponibles:

  • creatures: creature_name, preference, has_legs (contiene 'YES' o 'NO')

En este desafío, tenemos criaturas que quieren encontrar a su media naranja. Tenemos que ayudarlas a encontrar pareja.

Cada criatura tiene una preferencia representada por un número. Si ambas criaturas tienen números lo suficientemente cercanos, podrían ser una buena pareja.

Divide las criaturas en 3 grupos según sus valores de preferencia, pero considera solo las criaturas que tienen patas (donde has_legs = 'YES'). Devuelve creature_name, preference y su group_number (1, 2 o 3). Ordena los resultados por preference en orden ascendente.

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