当前位置:首页 > 技术知识 > 正文内容

PostgreSQL 内置函数(聚合函数)(postgresql支持集群吗)

maynowei1周前 (08-07)技术知识9


常用函数介绍

基础统计函数

COUNT 函数:其作用在于统计数据库表中的行数。
MAX 函数:用于查询某一特定列中的最大值。
MIN 函数:可查询某一特定列中的最小值。
AVG 函数:能够计算某一特定列中的平均值。
SUM 函数:用于计算数字列所有值的总和。

特殊数据处理函数

ARRAY 函数:用于将输入值(包括空值 null)添加到数组之中。
Numeric 函数:完整罗列了 SQL 中所需操作数的相关函数。
String 函数:完整列举了 SQL 中所需操作字符的相关函数。

PostgreSQL 数学函数

  • abs(x):用于计算绝对值,例如 abs(-17.4) 的结果为 17.4。
  • cbrt(double):可计算立方根,如 cbrt(27.0) 得出 3。
  • ceil(double/numeric):返回不小于参数的最小整数,像 ceil(-42.8) 结果是 -42。
  • floor(double/numeric):返回不大于参数的最大整数,例如 floor(-42.8) 为 -43。
  • mod(y, x):用于取余数,如 mod(9, 4) 结果为 1。
  • random():生成 0.0 到 1.0 之间的随机数值。
  • sqrt(double/numeric):计算平方根,例如 sqrt(2.0) 约为 1.4142135623731。
  • trunc(double/numeric):进行截断操作(向零靠近),如 trunc(42.8) 结果是 42。
  • trunc(v numeric, s int):将数字截断为 s 位小数,例如 trunc(42.438, 2) 为 42.43。

PostgreSQL 字符串函数和操作符

  • string || string:实现字串连接,例如 'Post' || 'greSQL' 连接后为 ‘PostgreSQL’。
  • lower(string):把字串转化为小写,如 lower('TOM') 变为 ‘tom’。
  • upper(string):将字串转化为大写,例如 upper('tom') 成为 ‘TOM’。
  • substring(string from int for int]):抽取子字串,如 substring('Thomas' from 2 for 3) 得到 ‘hom’。
  • substr(string, from int for int):同样用于抽取子字串,例如 substr('alphabet', 3, 2) 为 ‘ph’。
  • length(string text):计算 string 中字符的数目,如 length('jose') 结果是 4。

PostgreSQL 类型转换相关函数

  • to_char(int, text):用于将整型数据转换为字符串。例如,to_char(125, ‘999’) 可将整数 125 按照指定格式转换为字符串。
  • to_char(double precision, text):能够把双精度数据转换为字符串。比如,to_char(125.8::real, ‘999D9’) 会将双精度数 125.8 转换为符合特定格式的字符串。
  • to_char(numeric, text):可把数字(包括小数等)转换为字符串。像 to_char(-125.8, ‘999D99S’) 能将 -125.8 这个数字转换为指定格式的字符串。
  • to_date(text, text):可以将字符串转换为日期类型。例如 to_date(‘05 Dec 2000’, ‘DD Mon YYYY’) 能把特定格式的字符串转换为日期。
  • to_number(text, text):用于将字符串转换为数字。如 to_number(‘12,454.8-’, ‘99G999D9S’) 可把符合特定格式的字符串转换为数字。
  • to_timestamp(text, text):可将字符串转换为指定的时间格式,即把字符串转换为时间戳。

PostgreSQL JSON 转换函数

  • json_build_object(VARIADIC "any"):用于从键值对构建 JSON 对象。例如,json_build_object('name', 'John', 'age', 30) 会返回 {"name": "John", "age": 30}。
  • json_array_elements(json):将 JSON 数组展开为一组 JSON 值。比如,对于 '[1, 2, 3]'::json 使用该函数会分别返回 1、2、3。
  • json_extract_path(json, VARIADIC text[]):从 JSON 对象中提取指定路径下的值。例如,对于 '{"a": {"b": 1}}'::json,json_extract_path('{"a": {"b": 1}}'::json, 'a', 'b') 会返回 1。
  • json_to_record(json) AS (...):将 JSON 对象转换为行类型。假设创建了一个行类型 CREATE TYPE person AS (name text, age int);,则 SELECT * FROM json_to_record('{"name": "Alice", "age": 25}') AS x(name text, age int); 可以将 JSON 对象转换为对应的行记录。
  • to_json(anyelement):将任何数据类型转换为 JSON 格式。例如,to_json(42) 会返回 42,to_json(array[1, 2, 3]) 会返回 [1, 2, 3]。

相关文章

Axure操刀微信H5页面之《人际沟通风格测试》的制作过程

来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。在之前的文章中我就讲过用Axure制作H5页面(再次声明Axure输出的html文件可能并非基于html5),在H5制...

Axure8.0教程:“百度一下,你就知道”搜索首页原型设计

加入人人都是产品经理【起点学院】产品经理实战训练营,BAT产品总监手把手带你学产品百度作为最大的中文搜索引擎,在某种程度上,有点学习google的简约至上的原则,但是给人的感觉还是不够彻底。今天,使用...

B端产品设计之业务设计(b端产品ui设计)

编辑导语:在这篇文章里,作者从解决方案设计、业务流程设计、产品功能设计三个方面,分析了如何进行B端产品的业务设计,感兴趣的小伙伴们一起来看一下吧。前篇文章讲了业务梳理,还没看过的同学可以先看看前篇文章...

单片机C语言编程,心得都在这里了

单片机写代码总踩坑,头文件被无视,老工程师的经验哪里来?前几天写8x8矩阵键盘的程序,搞了三天代码一直乱报错。后来发现自己连头文件是什么都不清楚,之前写的都是小程序,压根没碰过.h文件。看别人的程序都...

Android之自定义ListView(一)(android 自定义view绘制流程)

PS:自定义View是Android中高手进阶的路线.因此我也打算一步一步的学习.看了鸿洋和郭霖这两位大牛的博客,决定一步一步的学习,循序渐进.学习内容:1.自定义View实现ListView的Ite...

Win10桌面/手机版最深层次开发功能挖掘

IT之家讯 Win10开发者预览版为我们提供了一个Win10大框架的早期概览,使开发者与热心用户都可以提前感受Win10带来的新特性,尝试新工具,而作为开发者,最关心的莫过于Windows多平台通用应...