Menu
Coddy logo textTech

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 piezas aproximadamente iguales. Se usa a menudo para mejorar el rendimiento: enviar grandes cantidades de datos de una sola vez podría no ser una buena idea, por lo que esta función permite enviar piezas más pequeñas cada vez.

Por ejemplo:

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

Esto devolverá:

idlevelpieces
141
241
352
462
573
673

Obtuvimos 3 partes: el nivel 4 en la parte 1, los niveles 5 y 6 en la parte 2, y el nivel 7 en la parte 3.
Cuando el número de filas no es divisible exactamente entre n, NTILE distribuye las filas de la manera más uniforme posible, y los grupos más grandes aparecen 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 de cualquier otro grupo, y que las filas adicionales se distribuyan primero entre los grupos con los 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 pareja. Necesitamos ayudarlas a encontrar su pareja ideal.

Cada criatura tiene una preferencia que se representa como un número. Si ambas criaturas tienen un número lo suficientemente cercano, podrían ser una buena pareja.

Divide las criaturas en 3 grupos según sus valores de preferencia, pero considera únicamente 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