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