Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL 10.1不正确的除法输出_Sql_Postgresql_Integer Division - Fatal编程技术网

PostgreSQL 10.1不正确的除法输出

PostgreSQL 10.1不正确的除法输出,sql,postgresql,integer-division,Sql,Postgresql,Integer Division,当分母大于分子时,Postgres给出了错误的除法结果 select 2/4给出0,select 4/2工作正常 但是select 2/4实际上应该返回0.5 但它返回0作为整数尝试浮点除法,如: select 2.0 / 4 -- shows 0.5 或: Postgres对整数进行整数除法。具有讽刺意味的是,它不会对avg()进行整数平均,但这是另一回事 一种解决方案是简单地将其中一个值转换为数值: select 2/4, 2::numeric/4 Postgres将为数字添加小数位数

当分母大于分子时,Postgres给出了错误的除法结果

select 2/4
给出0,
select 4/2
工作正常

但是
select 2/4
实际上应该返回0.5
但它返回0作为整数

尝试浮点除法,如:

select 2.0 / 4 -- shows 0.5
或:


Postgres对整数进行整数除法。具有讽刺意味的是,它不会对
avg()
进行整数平均,但这是另一回事

一种解决方案是简单地将其中一个值转换为
数值

select  2/4, 2::numeric/4

Postgres将为数字添加小数位数。

这是因为它是整数除法。PostgreSQL工作正常。如果你想要一个浮点除法,那么先将其转换为浮点除法,请只标记你正在使用的版本,而不是在你的问题上分散随机标记和版本。你认为世界上最大的数据库系统之一Postgres有一个简单除法无法正常工作的错误吗?
select  2/4, 2::numeric/4