PostgreSQL常用数值处理函数简介

news/2024/10/4 20:44:05 标签: postgresql, 数据库

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

总结

这些数值处理函数提供了丰富的数值计算功能,从简单的数学操作到更高级的科学计算,满足了大多数数据库操作中的数值处理需求。


http://www.niftyadmin.cn/n/5690311.html

相关文章

【React】入门Day04 —— 项目搭建及登录与表单校验、token 管理、路由鉴权实现

项目搭建 创建项目 # 使用npx创建项目 npx create-react-app my-react-app # 进入项目目录 cd my-react-app # 创建项目目录结构 mkdir -p src/{apis,assets,components,pages,store,utils} touch src/{App.js,index.css,index.js} 使用npx create-react-app创建项目&#xff0…

苹果盛宴:iPhone 16系列领衔,智能穿戴新潮流来袭

在科技界备受瞩目的苹果秋季发布会上,众多新品悉数亮相,从全新的Apple Watch系列到AirPods系列,再到备受期待的iPhone 16系列,每一款产品都以其独特的创新和卓越的性能,再次定义了智能设备的高标准。 本文将带您领略这…

Yolov11项目实战1:道路缺陷检测系统设计【Python源码+数据集+运行演示】

一、项目背景 随着城市化进程的加速和交通网络的不断扩展,道路维护成为城市管理中的一个重要环节。道路缺陷(如裂缝、坑洞、路面破损等)不仅影响行车安全,还会增加车辆的磨损和维修成本。传统的道路缺陷检测方法主要依赖人工巡检…

ACT调试pycharm报错

在运行ACT 代码时,根据官方readme使用命令行需要在wandb选择的时候输入3 但是,使用pycharm运行的时候会报错 wandb.errors.UsageError: api_key not configured (no-tty). call wandb.login(key[your_api_key]) 网上搜索都是说要注册什么key&#xf…

工程机械车辆挖掘机自卸卡车轮式装载机检测数据集VOC+YOLO格式2644张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2644 标注数量(xml文件个数):2644 标注数量(txt文件个数):2644 标注…

NettyServerHandler注入其他类为null

NettyServerHandler中注入其他类为空解决办法: 增加如下代码 public static NettyServerHandler nettyServerHandler;PostConstructpublic void init() {nettyServerHandler this;}整个类代码如下: Component public class NettyServerHandler extends ChannelIn…

当忘记手机密码时可以尝试方法:手机解锁软件的六大方法

您可能出于多种原因想要解锁手机。也许您正在出国旅行并想使用当地的 SIM 卡,或者您刚刚购买了二手手机并需要删除前任所有者的个人数据。您可能想知道如何免费获得可以解锁任何手机的软件。Android 用户可以使用指纹、面部识别或 PIN。您还可以通过快速连续单击电源…

Python技巧:如何处理未完成的函数

一、问题的提出 写代码的时候,我们有时候会给某些未完成的函数预留一个空位,等以后有时间再写具体内容。通常,大家会用 pass 或者 ... (省略号)来占位。这种方法虽然能让代码暂时不报错,但可能在调试的时候…