Estimados co-listeros: Estoy teniendo problemas con una función de agregación y unos cálculos con ventanas.
El caso es que estoy intentando hacer unos cálculos en los cuales uso unas funciones de ventana para obtener una vista materializada (Posgtresql 9.4). En otros casos (incluso dentro de la consulta que os adjunto), funcionan perfectamente. No entiendo por qué ahora, en la consulta final no me da el resultado esperado. Por si fuera suficiente, ya que la consulta es larga, en primer lugar os pongo un resumen de la consulta, por si a primera vista algo "chillara". También os digo que es muy probable que esta no sea la mejor manera de obtener lo que quiero... pero hasta aquí llego... ideas son bienvenidas: Resumen: Create materialized view XXX as( WITH subconsulta2 as ( WITH SUBCONSULTA1 as(Consulta con funcion ventana) SELECT (VARIOS CAMPOS DE SUBCONSULTA1 Y OTROS CON CALCULOS, ETC) ) select CAMPOS DE SUBCONSULTA2 CON FUNCIONES VENTANA La consulta completa, en la que el cálculo de porc_energia no es correcto es: DROP materialized VIEW IF EXISTS param_eval; CREATE MATERIALIZED VIEW param_eval as( with previo_param as ( with tm as ( select camp, barcod, lance, espcod, ncien, numero, ((ctalla+0.25)*numero)/sum(numero) over (partition by camp,barcod,lance,espcod,ncien) as talla from tallas_final_sinsexo where numero!=0 group by camp,barcod,lance,espcod,ncien,ctalla,numero) select tm.camp, tm.barcod, evalcod, tm.lance, tm.espcod, tm.ncien, sum(tm.numero) as numero, round(sum(talla),3) as tmedia, 10^((b_par+m_par*log(sum(talla)))/10)::numeric(9,8) as mbsc from tm, ts_eval where tm.camp=ts_eval.camp and tm.espcod=ts_eval.espcod group by tm.camp,tm.barcod,evalcod,tm.lance,tm.espcod,ts_eval.m_par,ts_eval.b_par,ncien) select camp, barcod, evalcod, lance, espcod, ncien, tmedia, numero, mbsc, (numero*mbsc)/sum(mbsc) over (partition by camp,barcod,evalcod,lance) as porc_energia <---AQUI ESTÁ EL PROBLEMA from previo_param group by camp,barcod,evalcod,lance,espcod,ncien,tmedia,numero,mbsc order by camp,barcod,evalcod,lance,ncien); Muchísimas gracias por vuestra ayuda, un saludo y feliz vuelta del verano (o invierno a gente del hemisferio sur) Jorge Tornero