首页 > 解决方案 > 四舍五入消除小数

问题描述

我有以下查询:

SELECT ds, 
       round(count(CASE WHEN action = 'accepted' THEN 1 
             ELSE NULL END) * 1.0 / count(action),2) * 100 as perc
FROM friend_requests
group by 1

输出:

perc
50.00
100.00
50.00

所需的输出:

perc
50
100
50

如果我想删除小数并且只有 50 或 100 我该如何编辑它?我尝试将 ,2 参数更改为 ,0 并将所有值四舍五入为 100

谢谢

标签: sqlpostgresql

解决方案


将您的perc字段转换为int类型并删除该round函数:

SELECT
    ds,
    cast(count(CASE WHEN action = 'accepted' THEN 1 ELSE NULL END) * 1.0 / count(action) * 100 as int) as perc
FROM friend_requests
group by 1

推荐阅读