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

2023-06-0610:48:36数据库教程Comments1,476 views字数 3149阅读模式

本文将带着示例提供最常用的PostgreSQL数学函数,可帮助你学习使用PostgreSQL 快速有效地执行各种数学运算。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

思维导图如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

玩转PostgreSQL(九):数学函数执行运算文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

导航表格如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

函数说明示例结果
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返回数字的绝对值文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?语法

下面说明ABS()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

ABS(numeric_expression)

?入参

ABS()函数有1个入参:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

  • numeric_expression

必填参数。 一个数字,它可以是正数、负数、或者零,它可以是整数,也可以是小数。也可以是一个算数表达式文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?返回值

ABS()函数返回其计算值,数据类型与输入参数相同文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?示例

以下示例显示如何使用ABS()计算数字绝对值的函数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

SELECT ABS(-10.24)

结果是:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

10.24

以下语句使用计算表达式功能:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

SELECT ABS( 300 - 369 );

结果如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

69

?备注

除了ABS()函数,我们还可以使用绝对运算符 @,例如:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

SELECT @ -15

它按预期返回了15。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

15

?PostgreSQL CEIL() 函数

?简介: 在本节中,我们将学习CEIL()函数,CEIL()函数返回一个四舍五入到下一个整数的数字文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?语法

下面说明CEIL()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

CEIL(numeric_expression)

?入参

CEIL()函数有1个入参:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

  • numeric_expression

必填参数。 一个数字,它可以是正数、负数、或者零,它可以是整数,也可以是小数。也可以是一个算数表达式文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?返回值

CEIL()函数返回与输入参数相同数据类型的值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?示例

以下是使用CEIL()函数的示例sql:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

将数字四舍五入到最接近的整数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

SELECT
    CEIL( 369.222 );

输出如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

370

接下来,让我们使用一下数据库表来演示文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

玩转PostgreSQL(九):数学函数执行运算文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

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

输出如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

玩转PostgreSQL(九):数学函数执行运算文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?PostgreSQL FLOOR() 函数

?简介: 在本节中,我们将学习FLOOR()函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?语法

下面说明FLOOR()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

FLOOR(numeric_expression)

?入参

FLOOR()函数有1个入参:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

  • numeric_expression

必填参数。 一个数字,它可以是正数、负数、或者零,它可以是整数,也可以是小数。也可以是一个算数表达式文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?返回值

FLOOR()函数返回返回小于或等于由参数指定的数字的最大整数值文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?示例

以下是使用FLOOR()函数的示例sql:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

SELECT
    FLOOR( 777.369 );

输出如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

玩转PostgreSQL(九):数学函数执行运算文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?PostgreSQL MOD 函数

?简介: 在本节中,我们将学习MOD()函数,它执行模运算,在第一个参数除以第二个参数后返回余数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?语法

下面说明MOD()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

MOD(x,y)

?入参

MOD()函数有2个入参:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

  • x

x 参数是除以第二个的数字。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

  • ****y

y 参数是除数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

y不能为零 (0),否则,该函数将发出除以零错误。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?返回值

MOD()函数返回第一个参数除以第二个参数的余数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?示例

以下是使用MOD()函数的示例sql:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

SELECT  MOD(16,5) modulus

玩转PostgreSQL(九):数学函数执行运算文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

以下语句还返回相同的结果:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

SELECT MOD(16,-5);

请参阅以下语句:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

SELECT MOD(-16,5);

返回一个负数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

玩转PostgreSQL(九):数学函数执行运算文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

同样,以下语句返回相同的负余数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

SELECT MOD(-16,-5);

输出如下文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

-1

?PostgreSQL ROUND 函数

?简介: 在本节中,我们将学习ROUND()函数,将一个数字四舍五入到最接近的整数或指定的小数位数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?语法

下面说明ROUND()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

ROUND (source [ , n ] )

?入参

ROUND()函数有2个入参:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

source文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

必需。 参数是要舍入的数字或数字表达式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

n文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

不必需。 一个表示数字精度的整数。默认为 0。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?返回值

ROUND()函数如果省略第二个参数,函数将返回类型与输入相同的结果文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

如果同时使用两个参数,ROUND()函数返回一个数值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?示例

?A) 舍入为整数示例

以下是使用ROUND()函数的示例sql:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

SELECT
    ROUND( 10.4 );

因为10.4的最接近整数是10,所以函数按预期返回10:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

10

以下示例10.5:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

SELECT
    ROUND( 10.5 );

结果是:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

11

?B) 四舍五入到小数点后两位的例子

以下示例说明如何舍入到小数点后两位:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

SELECT
    ROUND( 10.812, 2 );

输出文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

10.81

另一个将小数舍入到小数点后两位的例子:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

SELECT
    ROUND( 10.817, 2 );

输出文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

10.82   

我们可以更改第二个参数,将数字四舍五入到特定的小数位。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?PostgreSQL TRUNC 函数

?简介: 在本节中,我们将学习TRUNC()函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?语法

下面说明TRUNC()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

TRUNC(number [, precision])

?入参

TRUNC()函数有2个入参:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

  • number

必需的。 要截断的数值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

  • precision

可选的。 如果 precision参数是正整数, TRUNC() 函数截断小数点右侧的数字。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

如果precision 是负整数, TRUNC() 函数替换小数点左侧的数字。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

precision参数是可选的。如果未指定,则默认为零 (0)。换句话说,number被截断为整数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?返回值

TRUNC()函数返回相同的数字数据类型。如果未指定第二个参数,则作为第一个参数。否则,如果使用两个参数,则该函数返回一个数值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?示例

以下是使用TRUNC()函数的示例sql:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

?A) 截断为整数示例

以下示例使用TRUNC()函数将数字截断为整数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

SELECT
    TRUNC(10.6);

输出如下文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

10

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

以下语句将数字截断为小数点后两位:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

 SELECT
    TRUNC(
        1.234,
        2
    );

结果如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

1.23

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

考虑以下示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

SELECT
    TRUNC(150.45,-2)

第二个参数是-2,因此,TRUNC()函数替换了小数点左侧的数字,输出:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

100

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html

作者:只注视着你
来源:稀土掘金
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45066.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/sjk/45066.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定