MogDB-opengauss中的聚集与分组操作
MogDB/opengauss 中的聚集与分组操作
COUNT:对结果集中的元组数量进行计数,如果是 COUNT(*),那么会统计所有元组(包括 NULL 值)的数量,如果是 COUNT(colname),那么会忽略 NULL 值,只统计非 NULL 值的数量。
SUM:对参数中属性的所有值求和。
AVG:对参数中属性的而所有值取平均值,要求列的类型必须是数值类型,其中 NULL 值将会被忽略。
MAX:对参数中属性求最大值,NULL 值会被忽略。
MIN:对参数中属性求最小值,NULL 值会被忽略。
对表 t1 的所有元组数量进行统计,具体语句如下:
MogDB=# SELECT COUNT(*) FROM t1;
count
3
(1 row)
如果给 COUNT 函数的参数指定为表达式(或列值),则只统计表达式结果为非 NULL 值的个数。
对表 t1 的 c2 列中非 NULL 值的个数进行统计,具体语句如下:
MogDB=# SELECT COUNT(c2) FROM t1;
count
2
(1 row)
如果在参数中指定了 DISTINCT 关键字,则先对结果中的值去掉重复值,然后再统计数量,如果不指定 DISTINCT,则默认为 ALL。
对表 t1 的 c1 列中非 NULL 值的个数进行统计,去掉重复值,具体语句如下:
SELECT COUNT(DISTINCT t1.c2) FROM t1;
AVG、SUM、MIN/MAX 函数同理。
对表 t1 的 c1 列做求和操作,具体语句如下:
MogDB=# SELECT COUNT(DISTINCT t1.c1) FROM t1;
count
2
(1 row)
对表 t1 的 c1 列求平均值,具体语句如下:
MogDB=# SELECT AVG(c1) FROM t1;
avg
1.3333333333333333
(1 row)
根据表 t1 的 c2 列做分组,求每个分组内 c1 的个数,具体语句如下:
MogDB=# SELECT c2, COUNT(c1) FROM t1 GROUP BY c2;
c2 | count
----+-------
| 1
2 | 2
(2 rows)
根据表 t1 的 c2 列做分组,求每个分组内 c1 的个数,将个数大于 1 的分组投影出来,具体语句如下:
MogDB=# SELECT c2, COUNT(c1) FROM t1 GROUP BY c2 HAVING count(c1) >1;
c2 | count
----+-------
2 | 2
(1 row)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了