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
相关推荐
程序员夏洛10 分钟前
Redis 数据过期后的删除策略是什么?
数据库·redis·缓存
鱼鳞_11 分钟前
热门八股-Redis
数据库·redis·缓存
这个DBA有点耶19 分钟前
SQL:2023新特性详解:JSON_TABLE、GREATEST/LEAST、QUALIFY 到底怎么用?
数据库·sql·mysql
CoderYanger24 分钟前
A.每日一题:输入单词需要的最少按键次数 Ⅰ+Ⅱ
java·数据结构·算法·leetcode·面试
Cosolar26 分钟前
一文弄懂 Agent Harness 与 Agent Runtime 的区别
java·后端·github
AOI小白新手上路30 分钟前
江科协15-2 直流电机实验调试总结
数据库·mongodb
小王C语言32 分钟前
MySQL 用户管理:创建用户、给用户授权
数据库·mysql
吴声子夜歌38 分钟前
Java——类、对象及方法(一)
java·开发语言
程序员夏洛1 小时前
Redis 的持久化机制有哪些?
java·数据库·redis
l1t1 小时前
DeepSeek总结的修复pgrust v0.2 #83:generate_series 聚合及其底层的两个成本 - #84
数据库·postgresql