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 salesUn 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.
Desafío
FácilTablas y columnas disponibles:
sales:category,product,revenue
Para cada fila, devuelve:
categoryproductrevenuepct_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
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
2Funciones de cadenas
LENGTH, UPPER, LOWERSUBSTRINSTRREPLACE y TRIMConcatenar con ||Repaso - Facturas3Agregación condicional
COUNT con CASESUM con CASEConvertir filas en columnasRepaso: fuentes de tráfico6Recetas de análisis
Top-N por grupoPorcentaje del totalTotal acumuladoConservar una fila por claveRepaso: clientes principalesPractica por tu cuenta: Playground de SQL