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
相关推荐
航Hang*6 分钟前
第3章:复习篇——第1节:创建和管理数据库---题库
数据库·笔记·sql·学习·期末·复习
温暖小土9 分钟前
深度解析 Spring Boot 自动配置:从原理到实践
java·springboot
Marktowin13 分钟前
Mybatis-Plus更新操作时的一个坑
java·后端
机器视觉知识推荐、就业指导15 分钟前
Qt 小技巧:如何用 Q_PROPERTY 管理属性
服务器·数据库·qt
R-sz16 分钟前
如何将json行政区划导入数据库,中国行政区域数据(省市区县镇乡村五级联动)
java·数据库·json
星辰&与海25 分钟前
操作系统引导过程
服务器
定仙游45330 分钟前
Java StringBuilder 超详细讲解
java
haiyu柠檬32 分钟前
IDEA和VSCode中好用的插件推荐
java·vscode·intellij-idea
怜淇37 分钟前
docker拉取openjdk8:jre失败
java·docker·容器
张心独酌43 分钟前
Rust开发案例库-静态服务器
服务器·开发语言·rust