Menu
Coddy logo textTech

Porcentaje del total

Parte de la sección Más allá de lo básico del Journey de SQL de Coddy. Lección 24 de 27.

La proporción de cada fila respecto del total es un clásico de las funciones de ventana: divide el valor de la fila entre la SUM de la misma columna en toda la ventana.

SELECT product, revenue,
       revenue * 100.0 / SUM(revenue) OVER () AS pct
FROM sales

Un OVER () vacío significa «todo el conjunto de resultados». Añade un PARTITION BY para calcular la proporción dentro de un grupo en su lugar (por ejemplo, OVER (PARTITION BY category) para obtener la proporción dentro de cada categoría).

Multiplica por 100.0 (no por 100) para que la división siga siendo de coma flotante. De lo contrario, la división entera de SQLite redondearía las participaciones pequeñas a cero.

challenge icon

Desafío

Fácil

Tablas y columnas disponibles:

  • sales: category, product, revenue

Para cada fila, devuelve:

  • category
  • product
  • revenue
  • pct_of_category: la proporción de ingresos del producto dentro de su categoría, redondeada a 1 decimal

Usa un PARTITION BY en la ventana. Ordena por category, después por pct_of_category de forma descendente.

Pruébalo tú mismo

SELECT category, product, revenue,
       -- pct como proporción dentro de la categoría, usa PARTITION BY
FROM sales
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 Más allá de lo básico

Practica por tu cuenta: Playground de SQL