PostgreSQL 教程: round 函数

九月 5, 2023

PostgreSQL 的ROUND()函数将数值四舍五入到最接近的整数或具有小数位数的数字。

语法

下面说明了ROUND()函数的语法:

ROUND (source [ , n ] )

参数

ROUND()函数接受 2 个参数:

\1) source

source参数是要四舍五入的数字或数值表达式。

\2) n

n参数是一个整数,用于确定四舍五入后的小数位数。

n 参数是可选的。如果省略 n 参数,则其默认值为 0。

返回值

如果省略第二个参数,ROUND()函数将返回一个与输入值类型相同的结果。

如果您使用两个参数,ROUND()函数将返回一个 numeric 数值。

示例

A) 舍入为整数的示例

以下示例显示如何使用ROUND()函数对小数进行四舍五入:

SELECT
    ROUND( 10.4 );

由于 10.4 最接近的整数是 10,因此该函数按预期返回 10:

10

以下是对 10.5 进行四舍五入的示例:

SELECT
    ROUND( 10.5 );

结果是:

11

B) 舍入到小数点后两位的示例

以下示例说明了如何四舍五入到小数点后两位:

SELECT
    ROUND( 10.812, 2 );

结果

10.81

另一个将小数四舍五入到小数点后两位的示例:

SELECT
    ROUND( 10.817, 2 );

结果

10.82   

您可以更改第二个参数以将数字四舍五入到特定的小数位。

C) 对表数据进行舍入的示例

我们将使用示例数据库中的paymentcustomer表进行演示,如下。

customer and payment tables

以下语句检索每个客户已支付的平均租金。

SELECT
    first_name,
    last_name,
    ROUND( AVG( amount ), 2 ) avg_rental
FROM
    payment
INNER JOIN customer
        USING(customer_id)
GROUP BY
    customer_id
ORDER BY
    avg_rental DESC;

在此语句中,我们使用ROUND()函数将平均租金四舍五入到小数点后两位。

下图说明了结果:

PostgreSQL ROUND function example

以下语句计算每个客户的平均租赁次数。

WITH rental(customer_id,rent) AS
(
    SELECT
        customer_id,
        COUNT( rental_id )
    FROM
        payment
    GROUP BY
        customer_id
)
SELECT 
    ROUND(AVG(rent)) 
FROM 
    rental;

在此示例中,我们使用ROUND()函数将结果舍入为整数。

在本教程中,您学习了如何使用 PostgreSQL 的ROUND()函数,将数字四舍五入到最接近的整数或指定小数位的数字。