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
相关推荐
prettyxian几秒前
【linux】进程概念(2)Linux进程的生命密码:从fork到完全独立
linux·运维·服务器
Trouvaille ~1 分钟前
【Linux】库制作与原理(一):静态库与动态库的制作使用
linux·运维·服务器·c语言·汇编·动静态库·编译链接
星火开发设计2 分钟前
快速排序详解:原理、C++实现与优化技巧
java·c++·算法·排序算法·快速排序·知识
写代码的【黑咖啡】4 分钟前
Python中的文件操作详解
java·前端·python
深信达沙箱10 分钟前
常见数据泄露途径测试用例
服务器·安全·测试用例·源代码
程序猿零零漆12 分钟前
Spring之旅 - 记录学习 Spring 框架的过程和经验(一)BeanFactory和ApplicationContext入门和关系
java·学习·spring
凌冰_13 分钟前
Thymeleaf 访问域对象
java·开发语言
白露与泡影14 分钟前
Java单元测试、集成测试,区别
java·单元测试·集成测试
Kapaseker15 分钟前
如何写出高性能的Java Stream
android·java