玩转PostgreSQL(九):数学函数执行运算

2023年 7月 10日 120.5k 0

本文将带着示例提供最常用的PostgreSQL数学函数,可帮助你学习使用PostgreSQL 快速有效地执行各种数学运算。

思维导图如下:

玩转PostgreSQL(九):数学函数执行运算

导航表格如下:

函数 说明 示例 结果
ABS 计算一个数字的绝对值 ABS(-10) 10
CBRT 计算一个数字的立方根 CBRT(8) 2
CEIL 将一个数字四舍五入到最接近的整数,该整数大于或等于一个指定的数字 CEIL(-12.8) -12
CEILING 与CEIL相同
DEGREES 将弧度转换为度数 DEGREES(0.8) 45.83662361
DIV 返回两个数值的整数商 DIV(8,3) 2
EXP 返回一个数字的科学记数法的指数值 EXP(1) 2.718281828
FLOOR 将一个数字向下四舍五入到最接近的整数,该整数小于或等于该数字 FLOOR(10.6) 10
LN 返回一个数字的自然对数 LN(3) 1.098612289
LOG 返回一个数字的10进制对数 LOG(1000) 3
LOG 返回一个数值的对数到指定的基数 LOG(2, 64) 6
MOD 用第一个参数除以第二个参数并返回余数 MOD(10,4) 2
PI 返回PI的值 PI() 3.141592654
POWER 将一个数值提高到第二个数值的幂值 POWER(5, 3) 125
RADIANS 将度数转换为弧度 RADIANS(60) 1.047197551
ROUND 将一个数字四舍五入到最接近的整数或指定的小数位数 ROUND(10.3) 10
SCALE 返回小数部分的小数位数 SCALE(1.234) 3
SIGN 返回一个数值的符号(正、负)。 SIGN(-1) -1
SQRT 返回一个数值的平方根 SQRT(3.0) 1.732050808
TRUNC 将一个数值截断到指定的小数点后的整数位上 TRUNC(12.3) 12
WIDTH_BUCKET 在一个等宽直方图中给桶分配数值。
RANDOM 返回一个范围从0到1的随机数 0.968435665

?PostgreSQL ABS()函数

?简介: 在本节中,我们将学习ABS()函数,ta返回数字的绝对值

?语法

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

ABS(numeric_expression)

?入参

ABS()函数有1个入参:

  • numeric_expression

必填参数。 一个数字,它可以是正数、负数、或者零,它可以是整数,也可以是小数。也可以是一个算数表达式

?返回值

ABS()函数返回其计算值,数据类型与输入参数相同

?示例

以下示例显示如何使用ABS()计算数字绝对值的函数:

SELECT ABS(-10.24)

结果是:

10.24

以下语句使用计算表达式功能:

SELECT ABS( 300 - 369 );

结果如下:

69

?备注

除了ABS()函数,我们还可以使用绝对运算符 @,例如:

SELECT @ -15

它按预期返回了15。

15

?PostgreSQL CEIL() 函数

?简介: 在本节中,我们将学习CEIL()函数,CEIL()函数返回一个四舍五入到下一个整数的数字

?语法

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

CEIL(numeric_expression)

?入参

CEIL()函数有1个入参:

  • numeric_expression

必填参数。 一个数字,它可以是正数、负数、或者零,它可以是整数,也可以是小数。也可以是一个算数表达式

?返回值

CEIL()函数返回与输入参数相同数据类型的值。

?示例

以下是使用CEIL()函数的示例sql:

将数字四舍五入到最接近的整数

SELECT
    CEIL( 369.222 );

输出如下:

370

接下来,让我们使用一下数据库表来演示

玩转PostgreSQL(九):数学函数执行运算

SELECT
    team,
    CEIL(SUM( rank )) srank
FROM
    pro_rank
GROUP BY
    team
ORDER BY
    srank DESC;

输出如下:

玩转PostgreSQL(九):数学函数执行运算

?PostgreSQL FLOOR() 函数

?简介: 在本节中,我们将学习FLOOR()函数

?语法

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

FLOOR(numeric_expression)

?入参

FLOOR()函数有1个入参:

  • numeric_expression

必填参数。 一个数字,它可以是正数、负数、或者零,它可以是整数,也可以是小数。也可以是一个算数表达式

?返回值

FLOOR()函数返回返回小于或等于由参数指定的数字的最大整数值

?示例

以下是使用FLOOR()函数的示例sql:

SELECT
    FLOOR( 777.369 );

输出如下:

玩转PostgreSQL(九):数学函数执行运算

?PostgreSQL MOD 函数

?简介: 在本节中,我们将学习MOD()函数,它执行模运算,在第一个参数除以第二个参数后返回余数。

?语法

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

MOD(x,y)

?入参

MOD()函数有2个入参:

  • x

x 参数是除以第二个的数字。

  • ****y

y 参数是除数。

y不能为零 (0),否则,该函数将发出除以零错误。

?返回值

MOD()函数返回第一个参数除以第二个参数的余数

?示例

以下是使用MOD()函数的示例sql:

SELECT  MOD(16,5) modulus

玩转PostgreSQL(九):数学函数执行运算

以下语句还返回相同的结果:

SELECT MOD(16,-5);

请参阅以下语句:

SELECT MOD(-16,5);

返回一个负数:

玩转PostgreSQL(九):数学函数执行运算

同样,以下语句返回相同的负余数:

SELECT MOD(-16,-5);

输出如下

-1

?PostgreSQL ROUND 函数

?简介: 在本节中,我们将学习ROUND()函数,将一个数字四舍五入到最接近的整数或指定的小数位数

?语法

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

ROUND (source [ , n ] )

?入参

ROUND()函数有2个入参:

source

必需。 参数是要舍入的数字或数字表达式。

n

不必需。 一个表示数字精度的整数。默认为 0。

?返回值

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

如果同时使用两个参数,ROUND()函数返回一个数值。

?示例

?A) 舍入为整数示例

以下是使用ROUND()函数的示例sql:

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   

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

?PostgreSQL TRUNC 函数

?简介: 在本节中,我们将学习TRUNC()函数

?语法

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

TRUNC(number [, precision])

?入参

TRUNC()函数有2个入参:

  • number

必需的。 要截断的数值。

  • precision

可选的。 如果 precision参数是正整数, TRUNC() 函数截断小数点右侧的数字。

如果precision 是负整数, TRUNC() 函数替换小数点左侧的数字。

precision参数是可选的。如果未指定,则默认为零 (0)。换句话说,number被截断为整数。

?返回值

TRUNC()函数返回相同的数字数据类型。如果未指定第二个参数,则作为第一个参数。否则,如果使用两个参数,则该函数返回一个数值。

?示例

以下是使用TRUNC()函数的示例sql:

?A) 截断为整数示例

以下示例使用TRUNC()函数将数字截断为整数:

SELECT
    TRUNC(10.6);

输出如下

10

?B) 截断到指定的小数位

以下语句将数字截断为小数点后两位:

 SELECT
    TRUNC(
        1.234,
        2
    );

结果如下:

1.23

?C) 第二个参数为负数的截断数字示例

考虑以下示例:

SELECT
    TRUNC(150.45,-2)

第二个参数是-2,因此,TRUNC()函数替换了小数点左侧的数字,输出:

100

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论