PostgreSQLで確率の計算(小数点以下を求める割り算)

PostgreSQL

このカテゴリーでは競馬予想プログラミング以外でも役に立つ、PostgreSQLの汎用的な技術について解説します。

PostgreSQLでは整数どうしで割り算すると、演算結果も整数型で扱われ小数点以下が切り捨てられます。

SELECT 1 / 2
実行結果→0

これを回避するには、次のようにデータ型をcast関数で変換すると期待通りの結果になります。

SELECT cast(1 AS float) / 2
実行結果→0.5

cast関数を使わない方法もあります。「1.0」を掛けると浮動小数点型の扱いになります。「1.0」というのがミソ。「1」では整数型で扱われ元の木阿弥。

SELECT 1 * 1.0 / 2
実行結果→0.5

コメント