在某些方言 (包括 Postgres 和 Redshift) 中,在整數之間執行計算 (例如除以計數) 會傳回整數,即使在一般數學中結果會是小數也一樣。舉例來說,您可以建立下列指標:
measure: sold_ratio { type: number sql: ${sold_count} / ${total_count} ;; value_format: "0.00" # Number with exactly 2 decimals (1.23) } measure: sold_percent { type: number sql: 100 * ${sold_count} / ${count} ;; value_format: "0.00" }
不過,在 Explore 中執行評估時,「Sold Ratio」欄會傳回零,而「Sold Percent」欄則不會填入小數位數。這不是正確做法:
已售庫存商品百分比 | 已售商品目錄項目比率 | 商品目錄項目數量 | 已售商品目錄項目數 |
---|---|---|---|
48.00 | 0 | 1,165,224 | 560,223 |
解決方案:將欄位轉換為浮點數
如果計算結果乘以非整數,則值會轉換為浮點值,並依預期傳回小數。您可以將分母乘以小數 (例如 1.0 或 100.0),強制 SQL 傳回小數結果:
measure: sold_ratio { type: number sql: 1.0 * ${sold_count} / ${total_count};; value_format: "0.00" } measure: sold_percent { type: Number sql: 100.0 * ${sold_count} / ${count};; value_format: "0.00" }
產生的「探索」資料表格現在會顯示預期的結果:
已售庫存商品百分比 | 已售商品目錄項目比率 | 商品目錄項目數量 | 已售商品目錄項目數 |
---|---|---|---|
48.08 | 0.48 | 1,165,224 | 560,223 |