PostgreSQL 提供了许多用于数值处理的函数,涵盖数学运算、取整、取余、随机数生成等操作。以下是一些常用的数值处理函数及其使用示例:
1. ABS()
- 取绝对值
返回数字的绝对值。
SELECT ABS(-10); -- 返回 10
SELECT ABS(3.5); -- 返回 3.5
2. CEIL()
或 CEILING()
- 向上取整
返回大于等于指定数字的最小整数。
SELECT CEIL(4.2); -- 返回 5
SELECT CEILING(4.2); -- 返回 5
3. FLOOR()
- 向下取整
返回小于等于指定数字的最大整数。
SELECT FLOOR(4.9); -- 返回 4
SELECT FLOOR(-4.9); -- 返回 -5
4. ROUND()
- 四舍五入
对数值进行四舍五入,可以指定小数点后的位数。
-- 四舍五入为整数
SELECT ROUND(3.14159); -- 返回 3-- 保留两位小数
SELECT ROUND(3.14159, 2); -- 返回 3.14
5. TRUNC()
- 截断小数
将数字截断为指定的精度,而不进行四舍五入。
-- 截断为整数
SELECT TRUNC(3.14159); -- 返回 3-- 截断为两位小数
SELECT TRUNC(3.14159, 2); -- 返回 3.14
6. MOD()
- 取模(取余数)
返回两数相除后的余数。
SELECT MOD(10, 3); -- 返回 1
SELECT 10 % 3; -- 也可以使用 % 操作符,返回 1
7. POWER()
- 乘方(幂运算)
返回一个数的指定次方。
SELECT POWER(2, 3); -- 返回 8
SELECT POWER(5, 2); -- 返回 25
8. SQRT()
- 计算平方根
返回一个数的平方根。
SELECT SQRT(9); -- 返回 3
SELECT SQRT(2); -- 返回 1.4142135623730951
9. CBRT()
- 计算立方根
返回一个数的立方根。
SELECT CBRT(27); -- 返回 3
SELECT CBRT(8); -- 返回 2
10. EXP()
- 计算自然指数函数
返回 e
的指定次方,e
是自然对数的底数(约为 2.718)。
SELECT EXP(1); -- 返回 2.718281828459045
SELECT EXP(2); -- 返回 7.3890560989306495
11. LN()
- 计算自然对数
返回一个数的自然对数(底数为 e
的对数)。
SELECT LN(2.718281828459045); -- 返回 1
SELECT LN(10); -- 返回 2.302585092994046
12. LOG()
- 计算对数
计算指定底数的对数,如果不指定底数,默认为 10。
-- 以10为底的对数
SELECT LOG(10); -- 返回 1-- 以2为底的对数
SELECT LOG(2, 8); -- 返回 3
13. PI()
- 返回圆周率(π)
返回常数 π
。
SELECT PI(); -- 返回 3.141592653589793
14. RANDOM()
- 生成随机数
返回一个 0 到 1 之间的随机浮点数。
SELECT RANDOM(); -- 返回 0 到 1 之间的随机数,如 0.37482923842
15. SETSEED()
- 设置随机数种子
设置随机数生成的种子值,用于控制 RANDOM()
的输出。SETSEED()
接受一个 0 到 1 之间的参数。
SELECT SETSEED(0.5); -- 设置随机数种子
SELECT RANDOM(); -- 随机数结果将根据种子值而固定
16. SIGN()
- 返回数字的符号
返回数字的符号:如果为负数,返回 -1;如果为正数,返回 1;如果为 0,返回 0。
SELECT SIGN(-10); -- 返回 -1
SELECT SIGN(0); -- 返回 0
SELECT SIGN(5); -- 返回 1
17. GREATEST()
和 LEAST()
- 最大值和最小值
GREATEST()
:返回一组数字中的最大值。LEAST()
:返回一组数字中的最小值。
-- 最大值
SELECT GREATEST(10, 20, 5); -- 返回 20-- 最小值
SELECT LEAST(10, 20, 5); -- 返回 5
18. WIDTH_BUCKET()
- 宽度分桶
将数字分配到指定范围内的桶中。返回数字所属桶的编号。
-- 将5分配到1到10的4个桶中,返回桶编号
SELECT WIDTH_BUCKET(5, 1, 10, 4); -- 返回 2
19. COSH()
、SINH()
、TANH()
- 双曲函数
COSH()
:计算双曲余弦。SINH()
:计算双曲正弦。TANH()
:计算双曲正切。
SELECT COSH(1); -- 返回 1.5430806348152437
SELECT SINH(1); -- 返回 1.1752011936438014
SELECT TANH(1); -- 返回 0.7615941559557649
20. ACOS()
、ASIN()
、ATAN()
- 反三角函数
ACOS()
:计算反余弦。ASIN()
:计算反正弦。ATAN()
:计算反正切。
SELECT ACOS(1); -- 返回 0
SELECT ASIN(0.5); -- 返回 0.5235987755982988
SELECT ATAN(1); -- 返回 0.7853981633974483
总结
这些数值处理函数提供了丰富的数值计算功能,从简单的数学操作到更高级的科学计算,满足了大多数数据库操作中的数值处理需求。
产品简介
- 梧桐数据库(WuTongDB)是基于 Apache HAWQ 打造的一款分布式 OLAP 数据库。产品通过存算分离架构提供高可用、高可靠、高扩展能力,实现了向量化计算引擎提供极速数据分析能力,通过多异构存储关联查询实现湖仓融合能力,可以帮助企业用户轻松构建核心数仓和湖仓一体数据平台。
- 2023年6月,梧桐数据库(WuTongDB)产品通过信通院可信数据库分布式分析型数据库基础能力测评,在基础能力、运维能力、兼容性、安全性、高可用、高扩展方面获得认可。
点击访问:
梧桐数据库(WuTongDB)相关文章
梧桐数据库(WuTongDB)产品宣传材料
梧桐数据库(WuTongDB)百科