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:
| id | level |
| 1 | 4 |
| 2 | 4 |
| 3 | 5 |
| 4 | 6 |
| 5 | 7 |
| 6 | 7 |
SELECT id, level, NTILE(3) OVER (ORDER BY level) as pieces
from table1Esto devolverá:
| id | nivel | piezas |
| 1 | 4 | 1 |
| 2 | 4 | 1 |
| 3 | 5 | 2 |
| 4 | 6 | 2 |
| 5 | 7 | 3 |
| 6 | 7 | 3 |
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.
Desafío
FácilTablas 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
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Más palabras clave
La palabra clave INLa palabra clave BETWEENLa palabra clave LIKELa palabra clave ASRepaso: modelos de celulares2Condiciones
Conceptos básicos de las condicionesLa palabra clave ANDLa palabra clave ORLa palabra clave NOTCombinación de múltiples condicionesParéntesisBooleanos5Operaciones aritméticas
Operadores matemáticosColumnas matemáticasLa operación móduloLa función ROUND()3Formato de retorno específico
Valores nulosOrdenar resultados, parte 1Ordenar resultados, parte 2Repaso: empresa de ciberseguridadLimitar el número de registrosRepaso: fábrica de vehículos6Desafíos introductorios
Repaso - Elección parlamentariaRepaso - Detención policial de un criminalRepaso - Recipiente de bebida de barRepaso - Ingeniería de nuevas columnas9Múltiples tablas
Unión básica, parte 1Unión básica, parte 2Repaso: uniónAutouniónRepaso: autouniónUniónSimplificar consultas, palabra clave WITHRepaso: consultas WITHRepaso: contratista inmobiliario12Funciones de ventana, parte 2
Funciones RANK y DENSE_RANKRepaso: RANK y DENSE_RANKFunción NTILEFunciones de agregaciónCriterio ROWS y RANGEPractica por tu cuenta: Playground de SQL