このカテゴリーでは競馬予想プログラミング以外でも役に立つ、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
コメント