# runningpct ❇️

La función runningpct es una función de ventana que devuelve el porcentaje acumulado de un indicador desde el inicio del rango respecto el total.

Requiere la cláusula ORDER BY en la partición OVER.

Se puede usar tanto la sintaxis OVER del SQL estándar como la sintaxis compacta propia de Crono.

# Ejemplo

La siguiente consulta devuelve el porcentaje de ventas acumulado (year to date ) para cada mes .

select 
  year(fecha) anyo,
  month(fecha) mes,
  sum(unidades) ventas,
  runningpct(ventas partition by anyo order by mes)
from dbo.lb_ventas
group by all

La consulta SQL generada es:

SELECT
  year(fecha) AS anyo,
  month(fecha) AS mes,
  sum(unidades) AS ventas,
  CASE WHEN sum(sum(unidades)) OVER (PARTITION BY year(fecha))<>0 THEN 1.0*sum(sum(unidades)) OVER (PARTITION BY year(fecha) ORDER BY month(fecha) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)/sum(sum(unidades)) OVER (PARTITION BY year(fecha)) END AS expr4
FROM dbo.lb_ventas
GROUP BY
  year(fecha),
  month(fecha)