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)百科
