テーブルの各行に対して計算されるPostgresの数式 質問する

テーブルの各行に対して計算されるPostgresの数式 質問する

PostgreSQL を使用して、次のようなテーブルがあるとします。

 12184 |               4 |          83
 12183 |               3 |         171
 12176 |               6 |          95

表の各行の数式を計算するにはどうすればよいですか?

たとえば、列 2 を列 3 で割ると、出力は次のようになります。

 12184 |   0.04819277108
 12183 |   0.01754385965
 12176 |   0.06315789474

私の本能は、次のことを試してみようというものでした。

SELECT col1, col2 / col3 FROM table_name;

しかし、それは天井(つまり切り捨てられた)整数部分を返すので、浮動小数点値が必要です。

ベストアンサー1

col2 と col3 は整数なので、典型的なキャスト トリックが必要です (したがって、結果はデフォルトで整数になります)

select col1, col2/col3*1.0 from table

または

select col1, col2/col3::float from table

または(SQL標準の方法)

select col1, col2/cast(col3 as float) from table

おすすめ記事