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
相关推荐
松涛和鸣5 分钟前
41、Linux 网络编程并发模型总结(select / epoll / fork / pthread)
linux·服务器·网络·网络协议·tcp/ip·算法
martin10175 分钟前
Oracle 11g 数据库卡顿排查与实战优化:一次真实的慢 SQL 定位全过程
数据库·后端
Linux Huang7 分钟前
spring注册组件/服务无效,问题排查
大数据·服务器·数据库·spring
鹿角片ljp8 分钟前
力扣26.有序数组去重:HashSet vs 双指针法
java·算法
SweetCode12 分钟前
汉诺塔问题
android·java·数据库
Muscleheng18 分钟前
Linux安装LibreOffice
linux·运维·服务器
bugtraq202121 分钟前
PentestGPT的部署和使用本地大模型的调试记录
linux·服务器·python
橙汁味的风25 分钟前
4数据库安全性
数据库·oracle
p&f°27 分钟前
Java面试题(全)自用
java·开发语言
爬山算法31 分钟前
Hibernate(9)什么是Hibernate的Transaction?
java·后端·hibernate