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
相关推荐
fanstuck2 小时前
1M 上下文能怎么用?我用 Seed Evolving 做了一个招标文件版本差异审查器
服务器·人工智能·数据分析·开源·aigc
是小蟹呀^4 小时前
Spring Security + JWT 面试题整理
java·jwt·springsecurity
FoldWinCard5 小时前
D5 Linux 网络及端口命令
linux·运维·服务器
聆听。。花开雨落5 小时前
mybatis的typeHandler 作用
数据库·mybatis
pxzsky6 小时前
PG17数据库安装中分分词插件:pg_jieba
数据库·postgresql·pg_jieba
spencer_tseng6 小时前
Redis + Nacos.bat
java·windows·dos
kirs_ur6 小时前
SSD 在 AI 训练中的角色
大数据·服务器·人工智能
她说可以呀6 小时前
Redis哨兵
数据库·redis·bootstrap
troyzhxu7 小时前
列表查询的 GraphQL —— 一行代码终结你的 if-else 地狱!
java·springboot·graphql