Ejemplo: total global y porcentaje por venta
SELECT v.id_venta, v.total,
SUM(v.total) OVER () AS total_global,
CAST(100.0 * v.total / SUM(v.total) OVER () AS decimal(10,2)) AS porcentaje
FROM ventas v;
SUM OVER permite totales acumulados, totales por partición y porcentajes sin perder detalle.
SELECT v.id_venta, v.total,
SUM(v.total) OVER () AS total_global,
CAST(100.0 * v.total / SUM(v.total) OVER () AS decimal(10,2)) AS porcentaje
FROM ventas v;
SELECT v.id_cliente, v.fecha, v.total,
SUM(v.total) OVER (PARTITION BY v.id_cliente ORDER BY v.fecha
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS acumulado
FROM ventas v;