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
相关推荐
福尔摩斯张3 分钟前
Linux的pthread_self函数详解:多线程编程中的身份标识器(超详细)
linux·运维·服务器·网络·网络协议·tcp/ip·php
零雲8 分钟前
Java面试:@Component和@Bean的区别是什么
java·开发语言·面试
爱学习的小可爱卢9 分钟前
数据库MySQL——MySQL 可重复读隔离级别:Read View 底层原理与幻读问题深度剖析(面试必知)
数据库·mysql
2401_8322981010 分钟前
一云多芯时代:云服务器如何打破芯片架构壁垒
运维·服务器·架构
Web极客码32 分钟前
如何在 Linux 中终止一个进程?
linux·运维·服务器
Jerry404_NotFound38 分钟前
工厂方法模式
java·开发语言·jvm·工厂方法模式
一起养小猫38 分钟前
【探索实战】Kurator统一流量治理深度实践:基于Istio的跨集群服务网格
java·云原生·istio
微风欲寻竹影40 分钟前
深入理解Java中的String
java·开发语言
Coder_Boy_41 分钟前
基于SpringAI的智能平台基座开发-(二)
java·人工智能·springboot·aiops·langchain4j
lifewange1 小时前
数据库索引里面的游标是什么?
数据库·oracle