当前位置: 首页 > news >正文

PostgreSql 常用聚合函数

基础准备

CREATETEMPTABLEdemo(idint,vint,ttext);INSERTINTOdemoVALUES(1,10,'a'),(2,20,'b'),(3,NULL,'c');
idvt
110a
220b
3NULLc

注意:版本基于 PG 15,全部自带,无需扩展

A. 基础统计
SELECTcount(*)AScnt,-- 3count(v)AScnt_v,-- 2(NULL 不计)sum(v)ASs,-- 30avg(v)ASa,-- 15max(v)ASmx,-- 20min(v)ASmn-- 10FROMdemo;

结果:

cntcnt_vsamxmn
3230152010

B. 扩展统计

SELECTstddev_pop(v)ASstd_pop,-- 5stddev_samp(v)ASstd_samp,-- 7.0710678var_pop(v)ASvar_pop,-- 25var_samp(v)ASvar_samp-- 50FROMdemo;

结果:

std_popstd_sampvar_popvar_samp
57.071067812550
C. 位运算聚合
SELECTbit_and(v)ASbit_and,-- 0 (10 & 20 = 0)bit_or(v)ASbit_or,-- 30 (10 | 20 = 30)bit_xor(v)ASbit_xor-- 30 (10 # 20 = 30)FROMdemo;

结果:

bit_andbit_orbit_xor
03030
D. 字符串聚合
SELECTstring_agg(t,',')ASstr1,-- a,b,cstring_agg(t,','ORDERBYidDESC)ASstr2-- c,b,aFROMdemo;

结果:

str1str2
a,b,cc,b,a
E. 数组 / JSON 聚合
SELECTarray_agg(v)ASarr,-- {10,20}array_agg(vORDERBYvDESC)ASarr_desc,-- {20,10}json_agg(v)ASj,-- [10,20]jsonb_agg(t)ASjb-- ["a", "b", "c"]FROMdemo;

结果:

arrarr_descjjb
{10,20}{20,10}[10,20][“a”, “b”, “c”]
F. 排重聚合
SELECTcount(DISTINCTv)AScdv,-- 2string_agg(DISTINCTt,'')ASdst-- abcFROMdemo;

结果:

cdvdst
2abc
G. 有序集合(需要 WITHIN GROUP)
SELECTpercentile_cont(0.5)WITHINGROUP(ORDERBYv)ASmedian,-- 15percentile_disc(0.5)WITHINGROUP(ORDERBYv)ASdisc,-- 10mode()WITHINGROUP(ORDERBYt)ASmode_t-- a(出现最多)FROMdemo;

结果:

mediandiscmode_t
1510a
H. 假设集合(同样 WITHIN GROUP)
SELECTrank(15)WITHINGROUP(ORDERBYv)ASrnk,-- 2percent_rank(15)WITHINGROUP(ORDERBYv)ASpct,-- 0.5cume_dist()WITHINGROUP(ORDERBYv)AScume-- 1.0FROMdemo;

结果:

rnkpctcume
20.51.0
http://www.cnnetsun.cn/news/66353.html

相关文章:

  • 程序员必看!万字长文详解大模型“深度研究“新范式,小白也能入门AI智能体开发!
  • 大模型安全威胁全解析,Agent架构设计避坑指南,小白必看
  • SMDJ45A单向 TVS瞬态抑制二极管 :3000W浪涌保护管 防雷击抗静电
  • Foundation 文本
  • Sui 主网升级至 V1.61.2
  • 25、Kubernetes 应用部署与管理实践
  • 31、容器化应用设计理念与实践
  • 如何评估LobeChat的加载速度与响应延迟?性能基准测试
  • 缓存与数据库一致性解决方案深度解析
  • 消息队列真仙:我的道念支持最终一致性
  • Spring Boot项目推送Gitee全流程(进阶)
  • Java毕设项目:基于Springboot大学校园自习室教室座位预约网站设计与实现基于springboot高校自习室预约系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • JAVA打造同城羽馆预约,一键畅享运动
  • 经验贴 | 科学制定招聘需求与预算:HR 必看的逻辑与实操要点
  • 经验贴 | AI 面试评估系统怎么用?HR 高效识人实操指南
  • 构建个性化AI助手:LobeChat会话管理功能深度使用技巧
  • 基于昇腾NPU的YOLOV8-seg c++部署
  • 26、深入探索脚本编程与系统安全基础
  • XSS漏洞有哪几种?DOM型XSS和反射型有什么区别?SQL注入原理又是什么?网安面试题常见问题一文详解
  • 压力扫描阀:并行校准技术,解锁多点压力测量新高度
  • PyTorch框架下运行Qwen3-32B的内存优化策略
  • 为什么说Qwen3-8B是学术研究的理想选择?实测报告出炉
  • java基础-PriorityQueue(优先队列)
  • Qwen3-14B模型量化压缩技术:降低GPU内存占用
  • 18、日期和时间的格式化、解析及时间区域的使用
  • VisionPro CogIPOneImageTool1 工具超详细解释(含内部功能全解析)
  • VisionPro CogIDTool 工具超深度详解(技术细节 + 实战配置版)
  • 让 BI 拥有‘领域大脑’:智能 BI 如何实现 AI 级精准数据查询
  • 提示工程架构师的战略规划:提示系统生命周期管理
  • 条形码识别与定位:基于FCOS框架的多类型条码检测与识别技术详解