likes
comments
collection
share

[千字长文系列] 🌏探秘PG之一文带你玩转PostgreSQL🗺️(九)

作者站长头像
站长
· 阅读数 34

📋🐏🐑🐐

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

思维导图如下:

[千字长文系列] 🌏探秘PG之一文带你玩转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

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

[千字长文系列] 🌏探秘PG之一文带你玩转PostgreSQL🗺️(九)

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

输出如下:

[千字长文系列] 🌏探秘PG之一文带你玩转PostgreSQL🗺️(九)

🐏PostgreSQL FLOOR() 函数

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

🐑语法

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

FLOOR(numeric_expression)

🐑入参

FLOOR()函数有1个入参:

  • numeric_expression

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

🐑返回值

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

🐑示例

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

SELECT
    FLOOR( 777.369 );

输出如下:

[千字长文系列] 🌏探秘PG之一文带你玩转PostgreSQL🗺️(九)

🐏PostgreSQL MOD 函数

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

🐑语法

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

MOD(x,y)

🐑入参

MOD()函数有2个入参:

  • x

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

  • ****y

y 参数是除数。

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

🐑返回值

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

🐑示例

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

SELECT  MOD(16,5) modulus

[千字长文系列] 🌏探秘PG之一文带你玩转PostgreSQL🗺️(九)

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

SELECT MOD(16,-5);

请参阅以下语句:

SELECT MOD(-16,5);

返回一个负数:

[千字长文系列] 🌏探秘PG之一文带你玩转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

未完待续..既然看到这里了,不妨来个大大的点赞吧[千字长文系列] 🌏探秘PG之一文带你玩转PostgreSQL🗺️(九)

转载自:https://juejin.cn/post/7163103322713358349
评论
请登录