news 2026/6/20 16:15:32

PostgreSql 常用聚合函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/20 4:57:04

JSP如何结合国密算法实现大文件加密存储?

咱是一名福建的“老码农”,最近接了个外包项目,客户要做大文件上传功能,要求还挺细——原生JS实现、20G文件传输、文件夹保留层级、加密传输存储、断点续传兼容IE9… 预算还卡在100块以内(老板说“小项目不搞虚的”)。…

作者头像 李华
网站建设 2026/6/18 19:09:43

JSP中如何利用分段技术实现百万文件上传优化?

📌 毕业设计求生指南:大文件上传系统(兼容IE8版) 😩 现状描述 大家好,我是浙江某三本计算机专业的大三学生,马上要毕业了,现在被导师逼着搞一个**「支持10G文件上传的系统」**&…

作者头像 李华
网站建设 2026/6/20 12:38:18

PyTorch 全面介绍

PyTorch 是由 Facebook(现 Meta)人工智能研究院开发的开源机器学习框架,主打 “灵活、易用、动态计算图”,是当前深度学习领域最主流的工具之一,不管是科研实验、算法原型开发,还是工业级部署,都…

作者头像 李华
网站建设 2026/6/20 16:05:26

【time-rs】Format 错误枚举详解(error/format.rs)

这段Rust代码定义了一个格式化错误类型,用于处理时间或数据结构格式化过程中的各种错误情况。 主要用途 用于表示在格式化数据结构(特别是时间相关结构)时可能发生的各种错误。 代码结构分析 1. 枚举定义 #[non_exhaustive] #[derive(Debug)]…

作者头像 李华
网站建设 2026/6/18 14:50:11

【拯救HMI】从静态到动态:利用数据可视化提升HMI洞察力

现代HMI的强大之处在于能将海量数据转化为直观的视觉洞察。本文将介绍如何通过趋势图、仪表盘、KPI看板和动画,让数据“开口说话”。正文:趋势图: 用于分析过程变量的历史变化,是进行故障诊断和工艺优化的利器。支持多变量同图对比…

作者头像 李华