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
相关推荐
CodeHackerBhx28 分钟前
如何使用VMware安装Linux操作系统
linux·运维·服务器
睡不醒的小泽33 分钟前
VSCode环境下连接 MySQL 8.0 数据库 (C++)
数据库·windows·vscode
码农小野1 小时前
基于SpringBoot的自习室预订系统
java·spring boot·后端
lizi888882 小时前
单组件的编写
java
花果山~~程序猿2 小时前
高级I/O知识分享【5种IO模型 || select || poll】
运维·服务器·网络
java_heartLake2 小时前
设计模式之代理模式
java·设计模式·代理模式
藓类少女3 小时前
正则表达式
数据库·python·mysql·正则表达式
吴半杯3 小时前
Linux-mysql5.7-mysql8.0安装包下载及安装教程,二合一
linux·运维·服务器
szcsd1234567893 小时前
简单有效关于msvcp140.dll丢失的解决方法,msvcp140.dll修复的方法原理及步骤
数据库·dll文件·dll修复工具·dll修复·dll丢失