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
相关推荐
先做个垃圾出来………12 小时前
Django vs Flask 异步视图性能对比:数据驱动的深度分析
数据库·django·flask
独自破碎E13 小时前
BISHI66 子数列求积
android·java·开发语言
爱学习的小可爱卢13 小时前
JavaSE基础-Java String不可变性深度解析
java·javase
运维管理13 小时前
h3c -小型局域网通往外网
linux·服务器·网络
tryCbest13 小时前
Oracle恢复已损坏定时任务(Jobs)
数据库·oracle
君爱学习13 小时前
Spring Boot JWT Token 认证
java
程序员清风13 小时前
2026年必学:Vibe Coding几个实用技巧,老手都在偷偷用!
java·后端·面试
夕除13 小时前
js--24
java
AC赳赳老秦13 小时前
多模态 AI 驱动办公智能化变革:DeepSeek 赋能图文转写与视频摘要的高效实践
java·ide·人工智能·python·prometheus·ai-native·deepseek
蒸蒸yyyyzwd13 小时前
数据库学习笔记
数据库·笔记