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
相关推荐
离陌在学C#22 分钟前
C# 异步编程:从 async/await 到 Task 实战指南
开发语言·数据库·c#
念恒1230625 分钟前
传输层协议TCP
服务器·网络·tcp/ip
东坡白菜39 分钟前
windows下使用Trae启动java项目遇到的乱码问题
java
SQL-First布道者44 分钟前
⚡Spring JDBC 完整体系 · 第 10 集 · 手搓 `BaseCondition`
java·spring boot·后端·spring·mybatis·spring jdbc
珍珠先生1 小时前
第9章 JDK 11 新特性:var 与便捷新 API
java
2601_962074681 小时前
Spring Boot的无缝衔接:深入解析与实践
数据库·spring boot·后端
比兔代理1 小时前
代理IP池性能瓶颈在哪?并发、带宽与IP质量的平衡优化策略
服务器·网络·tcp/ip·安全
武帝为此1 小时前
【InnoDB存储引擎介绍】
数据库·算法
hoho_121 小时前
麒麟V10升级nginx最新版本到1.31.4
java·服务器·nginx
冬夜戏雪1 小时前
笔试的Scanner in Scanner out
java·开发语言