Postgresql

postgresql物化視圖錯誤:將負數提高到非整數冪會產生復雜的結果

  • September 7, 2021

我對計算有復雜的看法,但有一條線會引起問題

ROUND((((latest_revenue::numeric/ oper_reve_3y_old::numeric) ^ (1/3::numeric)) -1::numeric)*100::numeric)

當我執行查詢時,計算工作正常,當我在視圖中使用它時,一切正常,但是如果我嘗試用這個語句創建物化視圖,我得到錯誤

“一個負數的非整數冪會產生一個複雜的結果”

有什麼辦法可以在物化視圖中使用它?還是有一些解釋為什麼這不適用於物化視圖?

如果您查詢整個視圖,您將得到相同的錯誤:

SELECT * FROM view_name;

當您使用視圖時,您可能看不到錯誤,因為您正在使用其他WHERE條件來避免有問題的值。

請記住,視圖只是一個命名SELECT語句,因此查詢視圖不一定要首先計算整個視圖然後應用條件來完成。但是,當您創建物化視圖時,必須選擇視圖中的所有數據。

引用自:https://dba.stackexchange.com/questions/299181