0Pricing
SQL Academy · Lección

Agrupación en intervalos con NTILE y Cume_Dist

Divida las filas en N intervalos de igual tamaño con NTILE y calcule la distribución acumulada con CUME_DIST y PERCENT_RANK.

Agrupación en intervalos con NTILE y Cume_Dist es una lección gratuita de SQL Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de SQL Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de SQL Academy incluye 4 lecciones en total.

NTILE: grupos de igual tamaño

NTILE(n) divide las filas ordenadas en n grupos aproximadamente iguales:

SELECT id, total,
       NTILE(4) OVER (ORDER BY total) AS quartile
FROM orders;
-- 1 = bottom 25%, 2 = next, 3, 4 = top 25%

Grupos por percentiles

NTILE(10) para deciles y NTILE(100) para percentiles:

SELECT id, score,
       NTILE(100) OVER (ORDER BY score DESC) AS percentile
FROM students;
-- percentile 1 = top 1%

PERCENT_RANK

La clasificación relativa como un número decimal en [0, 1]:

SELECT id, score,
       PERCENT_RANK() OVER (ORDER BY score) AS pct_rank
FROM students;
-- 0 for the lowest, 1 for the highest.

CUME_DIST

La fracción de filas cuyo valor es menor o igual que el de la fila actual:

SELECT id, score,
       CUME_DIST() OVER (ORDER BY score) AS cume_dist
FROM students;
-- "What share of students scored ≤ this one?"

Estadísticas de percentiles con PERCENTILE_CONT

Calcule el valor correspondiente a un percentil (interpolación continua):

SELECT
  PERCENTILE_CONT(0.5)  WITHIN GROUP (ORDER BY total) AS median,
  PERCENTILE_CONT(0.95) WITHIN GROUP (ORDER BY total) AS p95,
  PERCENTILE_CONT(0.99) WITHIN GROUP (ORDER BY total) AS p99
FROM orders;

PERCENTILE_DISC

Como PERCENTILE_CONT, pero devuelve un valor existente en lugar de uno interpolado:

PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY total)

NTILE en particiones

Cree grupos por usuario, categoría, etc.:

SELECT user_id, total,
       NTILE(4) OVER (PARTITION BY user_id ORDER BY total) AS user_quartile
FROM orders;

Histograma mediante NTILE

Construya los intervalos del histograma:

SELECT bucket, MIN(total) AS bucket_min, MAX(total) AS bucket_max, COUNT(*)
FROM (
  SELECT NTILE(10) OVER (ORDER BY total) AS bucket, total
  FROM orders
) sub
GROUP BY bucket
ORDER BY bucket;

Agregación por grupo

Después de crear los grupos, calcule estadísticas para cada uno:

SELECT user_quartile, COUNT(*) AS users, AVG(total) AS avg_total
FROM (
  SELECT user_id, NTILE(4) OVER (ORDER BY total) AS user_quartile, total
  FROM orders
) sub
GROUP BY user_quartile;

Combinar funciones de ventana

Combínelas en una sola consulta para crear un informe completo:

SELECT id, total,
       NTILE(4) OVER w     AS quartile,
       PERCENT_RANK() OVER w AS pct_rank,
       AVG(total) OVER w     AS overall_avg
FROM orders
WINDOW w AS (ORDER BY total);

Cuándo NTILE puede inducir a error

Los empates en ORDER BY pueden producir grupos de tamaños desiguales (NTILE no respeta los empates). Utilice una columna de desempate.

Resumen

NTILE + PERCENT_RANK + CUME_DIST cubren el análisis de distribuciones.

  • NTILE para grupos de cuantiles
  • PERCENTILE_CONT/DISC para estadísticas p50/p95/p99
  • Combine con PARTITION BY para análisis por grupo

Comprobación rápida

Necesita obtener la latencia p95 de una columna de tiempos de respuesta. ¿Qué función debe utilizar?

Preguntas frecuentes

¿La lección «Agrupación en intervalos con NTILE y Cume_Dist» es gratis?

Sí — el texto completo de «Agrupación en intervalos con NTILE y Cume_Dist» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de SQL Academy, actualiza a CoddyKit PRO. El curso de SQL Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Agrupación en intervalos con NTILE y Cume_Dist»?

Divida las filas en N intervalos de igual tamaño con NTILE y calcule la distribución acumulada con CUME_DIST y PERCENT_RANK. Practicas SQL Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar SQL Academy?

No se requiere experiencia previa. SQL Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Agrupación en intervalos con NTILE y Cume_Dist»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de SQL Academy?

Sí. Cada lección de SQL Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Cláusulas de marco: ROWS frente a RANGE
  2. Lag/Lead con ventanas de marco
  3. Agrupación en intervalos con NTILE y Cume_Dist
  4. Patrones de informes del mundo real
← Volver a SQL Academy