2017-11-24 6 views
0

を使用しているときにNULLIFによる除算を避けるために、postgresのウィンドウ関数を使用しています。postgresのウィンドウ関数を使用してNULLIFを動作させることはできません。

""または "付近の"構文エラーが発生します。

私はこのクエリを使用しています:

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 

答えて

1

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

を使用すると、ウィンドウ関数として nullif()を実行しようとしています。

あなたはnullif()の引数として式全体を置く必要があります。

NULLIF(sum(sum(rep.mes_33_uni)) over (partition by dpr.marca_producto), 0) 
関連する問題