Postgresql 四舍五入数值

标签 postgresql

我正在尝试从以下查询中获取小数点后 3 位的输出。

我得到的输出是 2.2600

如果我在下面的 round 函数中将参数 4 更改为 3,则输出将为 2.300

不正确,应该是2.26

Select date(time), 

    round((count(case WHEN status='404 NOT FOUND' THEN 1 END))
    /
    (count(*))::numeric,4) * 100 as error_percentage

from log GROUP BY date(time)
ORDER BY error_percentage DESC

最佳答案

你可以使用:

SELECT date(time), 
    ROUND(100.0 * (count(*) FILTER(WHERE status='404 NOT FOUND'))/(count(*)),3) 
    as error_percentage
FROM log 
GROUP BY date(time)
ORDER BY error_percentage DESC

关于Postgresql 四舍五入数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55439235/

相关文章:

sql - PostgreSQL 不使用部分索引

SQL计算出考虑年龄的产品销售额

c - PostgreSQL SPI : Manipulating type "Datum" to create a double array

sql - 识别冲突的正则表达式

sql - 使用表作为输入来查询子字符串

Java代理连接到postgres

postgresql - PSQL 比 PgAdmin III 慢

sql - PostgreSQL:未使用的索引导致查询性能不佳?

php - 使用数组元素更新 Postgres 表

sql - PostgreSQL - select 语句中的 if 子句