使用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;
但是返回上限(即向下舍入)整数部分,我需要浮点值。
答案 0 :(得分:15)
需要典型的强制转换技巧,因为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
答案 1 :(得分:1)
您可以在SELECT子句中使用算术表达式,如下所示:
SELECT col1 / col2 AS new_name
FROM t
答案 2 :(得分:0)
select col1, col2/col3 from table;
应该有效。 col2和col3不是数字吗?
答案 3 :(得分:0)
尝试这样的查询:
SELECT col1, col2 / col3::float FROM table_name;
答案 4 :(得分:0)
在PgSql中输入列。所以,如果你想操作它们;你需要施放专栏。
假设您有一个列'分钟',并且您想在列'mintues'的每个值中添加'+5'
因为您要添加整数值,所以分钟列必须是整数,然后才能执行添加。
因此方式不正确:
select *, minutes+5 from my table
>>语法错误
select *, minutes::int + 5 from mytable
>>给出输出