本文将带着示例提供最常用的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
接下来,让我们使用一下数据库表来演示
SELECT
team,
CEIL(SUM( rank )) srank
FROM
pro_rank
GROUP BY
team
ORDER BY
srank DESC;
输出如下:
?PostgreSQL FLOOR() 函数
?简介: 在本节中,我们将学习FLOOR()
函数
?语法
下面说明FLOOR()
函数的语法:
FLOOR(numeric_expression)
?入参
FLOOR()
函数有1个入参:
numeric_expression
必填参数。 一个数字,它可以是正数、负数、或者零,它可以是整数,也可以是小数。也可以是一个算数表达式
?返回值
FLOOR()
函数返回返回小于或等于由参数指定的数字的最大整数值
?示例
以下是使用FLOOR()
函数的示例sql:
SELECT
FLOOR( 777.369 );
输出如下:
?PostgreSQL MOD 函数
?简介: 在本节中,我们将学习MOD()
函数,它执行模运算,在第一个参数除以第二个参数后返回余数。
?语法
下面说明MOD()
函数的语法:
MOD(x,y)
?入参
MOD()
函数有2个入参:
x
x 参数是除以第二个的数字。
- ****
y
y 参数是除数。
y不能为零 (0),否则,该函数将发出除以零错误。
?返回值
MOD()
函数返回第一个参数除以第二个参数的余数
?示例
以下是使用MOD()
函数的示例sql:
SELECT MOD(16,5) modulus
以下语句还返回相同的结果:
SELECT MOD(16,-5);
请参阅以下语句:
SELECT MOD(-16,5);
返回一个负数:
同样,以下语句返回相同的负余数:
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