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
相关推荐
于先生吖15 小时前
前后端分离开发 Java 跑腿系统:用户 + 骑手 + 后台三端实战
java·开发语言
野犬寒鸦15 小时前
从零起步学习JVM|| 第二章:JVM基本组成及JVM内存区域详解
服务器·开发语言·后端·学习·面试·职场和发展
云烟成雨TD15 小时前
Spring AI Alibaba 1.x 系列【2】架构、特性与生产级演示案例
java·人工智能·spring
iPadiPhone15 小时前
Java NIO 核心原理解析、性能调优与大厂面试精要
java·后端·面试·nio
皙然15 小时前
深度解析三色标记算法:JVM 并发 GC 的核心底层逻辑
java·jvm·算法
大写的老王15 小时前
OpenClaw 部署实战:一周完成 PHP 到 Java 的项目迁移
java·php·ai编程
vx-bot55566615 小时前
企业微信ipad协议的防封号技术体系与策略实践
服务器·企业微信·ipad
LF3_15 小时前
监听数据库binlog日志变化,将变动实时发送到kafka
数据库·分布式·mysql·kafka·binlog·debezium
我真会写代码15 小时前
从入门到精通:Redis实战指南,解锁高性能缓存核心能力
数据库·redis·缓存
hnlgzb15 小时前
Gemini:kotlin这几个类型有什么区别?类比java的文件,是怎样的?
java·开发语言·kotlin