分析PostgreSQL中的distinct和group by
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容介绍了"分析PostgreSQL中的distinct和group by"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家
千家信息网最后更新 2025年11月07日分析PostgreSQL中的distinct和group by
本篇内容介绍了"分析PostgreSQL中的distinct和group by"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
通常来说,获取唯一值,既可以用distinct也可以用group by,但在存在主键时,group by会做相应的优化,把多个分组键规约为主键.
没有主键的情况
[pg12@localhost ~]$ psqlExpanded display is used automatically.psql (12.2)Type "help" for help.[local:/data/run/pg12]:5120 pg12@testdb=# create table tbl1 (id int,c1 text,c2 int,c3 varchar);CREATE TABLE[local:/data/run/pg12]:5120 pg12@testdb=# insert into tbl1 (id,c1,c2,c3) select x,x||'c1',x,x||'c3' from generate_series(1,100000) as x;INSERT 0 100000[local:/data/run/pg12]:5120 pg12@testdb=# explain select distinct id,c1,c2,c3 from tbl1; QUERY PLAN ------------------------------------------------------------------ HashAggregate (cost=1668.94..1720.54 rows=5160 width=72) Group Key: id, c1, c2, c3 -> Seq Scan on tbl1 (cost=0.00..1152.97 rows=51597 width=72)(3 rows)[local:/data/run/pg12]:5120 pg12@testdb=# explain select id,c1,c2,c3 from tbl1 group by id,c1,c2,c3; QUERY PLAN ------------------------------------------------------------------ HashAggregate (cost=1668.94..1720.54 rows=5160 width=72) Group Key: id, c1, c2, c3 -> Seq Scan on tbl1 (cost=0.00..1152.97 rows=51597 width=72)(3 rows)
存在主键的情况
[local:/data/run/pg12]:5120 pg12@testdb=# alter table tbl1 add primary key(id);'ALTER TABLE[local:/data/run/pg12]:5120 pg12@testdb=# explain select distinct id,c1,c2,c3 from tbl1; QUERY PLAN ------------------------------------------------------------------------- Unique (cost=14043.82..15293.82 rows=100000 width=72) -> Sort (cost=14043.82..14293.82 rows=100000 width=72) Sort Key: id, c1, c2, c3 -> Seq Scan on tbl1 (cost=0.00..1637.00 rows=100000 width=72)(4 rows)[local:/data/run/pg12]:5120 pg12@testdb=# explain select id,c1,c2,c3 from tbl1 group by id,c1,c2,c3; QUERY PLAN ------------------------------------------------------------------------------------- Group (cost=0.29..5402.29 rows=100000 width=72) Group Key: id -> Index Scan using tbl1_pkey on tbl1 (cost=0.29..5152.29 rows=100000 width=72)(3 rows)[local:/data/run/pg12]:5120 pg12@testdb=#
在存在主键的情况下,使用group by时,分组键只需要主键即可.
"分析PostgreSQL中的distinct和group by"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
情况
分析
内容
更多
知识
分组
实用
学有所成
接下来
困境
多个
实际
文章
案例
编带
网站
行业
过程
高质量
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
挂备案阿里云服务器ip
内蒙古智能还款软件开发
通讯软件开发过程创意
软件开发服务费可以少交税
cpanel数据库
杭州电子科技大学网络安全怎么样
容错服务器技术
专业建设常态数据库
网络安全大赛怎么创造
奉化一站式软件开发教程
萤石云怎么开通服务器
南天门网络技术有限公司招聘
访问服务器文件
博物馆数据库 蟋蟀罐
怎么由er图创建数据库
服务器实际应用选择
数据库物理存储结构表现为什么的
网络安全信息教育进校园
秘书小说软件开发
云服务器桌面管理软件
云南网络技术开发质量
网络安全法ppt 百度
数据库开发刚入职工资
绿盟网络安全评估功耗
电脑版mc怎么加入别人服务器
网络安全法里规定核心制度
如何成为网络安全拥护者
银行软件开发岗考题
数据库怎么授权
网络安全联盟自律协议