PostgreSQL常用数值处理函数简介

news2024/10/4 21:22:12

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.coloradmin.cn/o/2188710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ElasticSearch学习笔记(三)Ubuntu 2204 server elasticsearch集群配置

如果你只是学习elasticsearch的增、删、改、查等相关操作,那么在windows上安装一个ES就可以了。但是你如果想在你的生产环境中使用Elasticsearch提供的强大的功能,那么还是建议你使用Linux操作系统。 本文以在Ubuntu 2204 server中安装elasticsearch 8.…

go的一些知识点

一.package 1.新建项目 新建一个itying文件夹,在里面使用命令 就能生成一个go项目。生成一个go.mod 2.调用别的包的代码 按照下面的目录层级生成代码 //clac.go package calcfunc Add(x, y int) int {return x y } func Sub(x, y int) int {return x - y }…

【Web】复现n00bzCTF2024 web题解(全)

目录 File Sharing Portal 方法一: 方法二: Focus-on-yourSELF Passwordless File Sharing Portal 附件的Dockerfile给了这么一段 # Add the cron job to the crontab RUN mkdir /etc/cron.custom RUN echo "*/5 * * * * root rm -rf /app…

<<迷雾>> 第6章 加法机的诞生(1)--全加器 示例电路

全加器的符号 info::操作说明 鼠标单击开关切换开合状态 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/cyjsjdmw-examples/assets/circuit/cyjsjdmw-ch03-01-full-adder.txt 原图 全加器的逻辑电路实现 info::操作说明 鼠标单击…

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…

平衡BST:AVL树的实现与机制

目录 AVL树的简介 AVL节点的构建 AVL树体的构建 具体片段解析 旋转算法 AVL树的验证 AVL树的简介 AVL树是一种自平衡的二叉搜索树,它在19世纪60年代由Adelson-Velsky和Landis首次提出。在AVL树中,任何节点的两个子树的高度最大差别为1,这…

python-FILIP/字符串p形编码/数字三角形

一:FILIP 题目描述 给你两个十进制正整数 a,b​,输出将这两个数翻转后的较大数。 「翻转」在本题中的定义详见「说明 / 提示」部分。输入 第一行,两个十进制正整数 a,b。输出 第一行,a 和 b 翻转后的较大数。样例输入1 734 893 样…

《凡人修仙传》TXT精校全本|知轩藏书校对版!

看了动漫版,准备重温下原著,有好几年没看了。 最近找到了知轩藏书的校对版,堪称精校,nice! TXT,14.5MB: https://pan.quark.cn/s/c6446be393fa

二叉树进阶学习——从中序和后续遍历序列构建二叉树

1.题目解析 题目来源:106.从中序和后序遍历序列构造二叉树 测试用例 2.算法原理 后序遍历:按照左子树->右子树->根节点的顺序遍历二叉树,也就是说最末尾的节点是最上面的根节点 中序遍历:按照左子树->根节点->右子树…

gm/ID设计方法学习笔记(一)

前言&#xff1a;为什么需要gm/id &#xff08;一&#xff09;主流设计方法往往侧重于强反型区&#xff08;过驱>0.2V&#xff09;&#xff0c;低功耗设计则侧重于弱反型区&#xff08;<0&#xff09;&#xff0c;但现在缺乏对中反型区的简单和准确的手算模型。 1.对于…

C++系列-二叉搜索树

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 二叉搜索树 二叉搜索树又称二叉排序树&#xff0c;它或者是一颗空树&#xff0c;或者是具有以下性质的树 若它的左子树不为空&#xff0c;则左子树上的所有节点的值都小于根节点…

大数据实时数仓Hologres(四):基于Flink+Hologres搭建实时数仓

文章目录 基于FlinkHologres搭建实时数仓 一、使用示例 二、方案架构 1、架构优势 2、Hologres核心优势 三、实践场景 四、项目准备 1、创建阿里云账号AccessKey 2、准备MySQL数据源 五、构建实时数仓​编辑 1、管理元数据 2、构建ODS层 2.1、创建CDAS同步作业OD…

鸿蒙网络管理模块03——多播DNS管理

如果你也对鸿蒙开发感兴趣&#xff0c;加入“Harmony自习室”吧&#xff01;扫描下方名片&#xff0c;关注公众号&#xff0c;公众号更新更快&#xff0c;同时也有更多学习资料和技术讨论群。 1、概述 多播DNS也简称MDNS(Multicast DNS)&#xff0c;他主要提供局域网内的本地服…

NVIDIA Ampere 架构

全球超强弹性数据中心的核心。 文章目录 前言一、突破性创新1. 第三代 Tensor 核心2. 多实例 GPU (MIG)3. 第三代 NVLink4. 结构化稀疏5. 第二代 RT 核心6. 更聪明、快速的内存二、为规模化部署而优化1. 为各种服务器优化性能2. 统一计算和网络加速3. 密度优化的设计4. 安全部署…

leetcode练习 路径总和II

给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum 22 输出&a…

ElasticSearch备考 -- 查询模版

一、题目 ### 基础版 Create a search template for the above query, so that the template (i) is named "with_response_and_tag", (ii) has a parameter "with_min_response" to represent the lower bound of the response field, (iii) has a parame…

二叉树进阶学习——从前序和中序遍历序列构造二叉树

1.题目解析 题目来源&#xff1a;105.从前序与中序遍历序列构造二叉树——力扣 测试用例 2.算法原理 首先要了解一个概念 前序遍历&#xff1a;按照 根节点->左子树->右子树的顺序遍历二叉树 中序遍历&#xff1a;按照 左子树->根节点->右子树的顺序遍历二叉树 题目…

10款好用的开源 HarmonyOS 工具库

大家好&#xff0c;我是 V 哥&#xff0c;今天给大家分享10款好用的 HarmonyOS的工具库&#xff0c;在开发鸿蒙应用时可以用下&#xff0c;好用的工具可以简化代码&#xff0c;让你写出优雅的应用来。废话不多说&#xff0c;马上开整。 1. efTool efTool是一个功能丰富且易用…

java入门基础(一篇搞懂)

​ 如果您觉得这篇文章对您有帮助的话 欢迎您分享给更多人哦 感谢大家的点赞收藏评论&#xff0c;感谢您的支持&#xff01;&#xff01;&#xff01; 首先给大家推荐比特博哥&#xff0c;java入门安装的JDk和IDEA社区版的安装视频 JDK安装与环境变量的配置 IDEA社区的安装与使…

多线程-初阶(1)

本节⽬标 • 认识多线程 • 掌握多线程程序的编写 • 掌握多线程的状态 • 掌握什么是线程不安全及解决思路 • 掌握 synchronized、volatile 关键字 1. 认识线程&#xff08;Thread&#xff09; 1.1 概念 1) 线程是什么 ⼀个线程就是⼀个 "执⾏流". 每个线…