pgsql 分组查询方法

  • group by

    group by 查询的字段 必须出现在分组中。因此这里用 max 函数,来查其他字段

sql 复制代码
SELECT
	 "max"("name") as "name",
	 "max"("organization_id") as "organizationId",
	 account
FROM
	system_users 
GROUP BY account
  • PARTITION BY

Partition By是分组但不聚合

是按 account 进行分组且组内按 create_time 进行升序,返回组内行编号

rownum = 1 可以实现去重的效果

sql 复制代码
WITH res AS (
SELECT
	 organization_id,
	 "name",
	 account,
	 ROW_NUMBER() OVER(PARTITION BY "account" ORDER BY "create_time" ASC nulls last) AS rownum
FROM
	system_users 
)
SELECT * FROM res WHERE rownum = 1
相关推荐
万山y1 小时前
WSL SSH 服务器一站式配置教程
运维·服务器·ssh
半梦半醒*1 小时前
Prometheus监控物理服务器
linux·运维·服务器·centos·prometheus
利刃大大1 小时前
【高并发服务器】四、通用类型容器any
服务器·项目·cpp
mzhan0171 小时前
Linux: network: 拔插网线 interface down/up测试的痛点
linux·服务器·测试·破坏性测试
恒创科技HK1 小时前
高防服务器分为哪几种?香港高防服务器有什么特点?
运维·服务器·安全
魔猴疯猿1 小时前
轻松搭建RTMP推流、WebRTC拉流服务器SRS服务,源码编译安装
服务器·elasticsearch·webrtc
WnHj1 小时前
DORIS 服务器宕机重启后出现的问题
运维·服务器
qq_339191141 小时前
aws ec服务器统一为国内时间。ec 设置上海
服务器·云计算·aws
Lu Yao_3 小时前
Redis 持久化
数据库·redis·缓存
June`3 小时前
Redis5安装与核心命令详解
数据库·redis·缓存