Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Can';t使用postgres 10的窗口函数使NULLIF工作_Sql_Postgresql - Fatal编程技术网

Sql Can';t使用postgres 10的窗口函数使NULLIF工作

Sql Can';t使用postgres 10的窗口函数使NULLIF工作,sql,postgresql,Sql,Postgresql,我试图使用NULLIF来避免在使用postgres的over-window函数时被零除的错误 它在“结束”处或附近抛出“语法错误” 我正在使用此查询: SELECT dlo.nombre_cadena, dpr.marca_producto, sum(rep.mes_33_uni) / NULLIF(sum(sum(rep.mes_33_uni)), 0) over (partition by dpr.marca_producto) AS porcentajep,

我试图使用NULLIF来避免在使用postgres的over-window函数时被零除的错误

它在“结束”处或附近抛出“语法错误”

我正在使用此查询:

  SELECT 
    dlo.nombre_cadena, dpr.marca_producto,
    sum(rep.mes_33_uni) / NULLIF(sum(sum(rep.mes_33_uni)), 0) over (partition by dpr.marca_producto) AS porcentajep,
    FROM
    rpro_dim.reporte33_full rep
JOIN rpro_dim.dim_productos_retail dpr ON dpr.id_dim_prod_retail = rep.id_dim_prod_retail
JOIN rpro_dim.dim_locales dlo ON dlo.id_dim_local = rep.id_dim_localgroup by 
dlo.nombre_cadena, dpr.marca_producto
order by dlo.nombre_cadena, dpr.marca_producto

您正在尝试将
nullif()
作为窗口函数执行

您应该将整个表达式作为
nullif()
的参数:

您正在尝试将
nullif()
作为窗口函数执行

您应该将整个表达式作为
nullif()
的参数:

NULLIF(sum(sum(rep.mes_33_uni)), 0) over (partition by dpr.marca_producto) -- error!
NULLIF(sum(sum(rep.mes_33_uni)) over (partition by dpr.marca_producto), 0)