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
相关推荐
hikktn3 分钟前
Oracle批量UPDATE空值覆盖陷阱:CASE WHEN优雅防御方案【宗申集团】
数据库·oracle
周末也要写八哥5 分钟前
线程的生命周期之线程睡眠
java·开发语言·jvm
Han_han9196 分钟前
数据库基本操作:
数据库
炸薯条!11 分钟前
二叉树的链式表示(2)
java·数据结构·算法
J.Kuchiki19 分钟前
【PostgreSQL 内核学习:平衡 K 路归并(Balanced k-way Merge)】
数据库·学习·postgresql
徐寿春23 分钟前
什么是数据倾斜
java·guava
xieliyu.26 分钟前
MySQL 全套入门笔记:基础、库操作、数据类型
数据库·笔记·mysql
lvbinemail30 分钟前
【无标题】
数据库·postgresql·zabbix·监控
李白的天不白31 分钟前
一个服务器可以搭建多个网站
java·tomcat
●VON31 分钟前
AtomGit Flutter鸿蒙客户端:共享组件
java·flutter·华为·harmonyos·鸿蒙