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
相关推荐
Mr.45671 分钟前
Spring Boot 集成 PostgreSQL 表级备份与恢复实战
java·spring boot·后端·postgresql
架构师沉默21 分钟前
为什么一个视频能让全国人民同时秒开?
java·后端·架构
٩( 'ω' )و26024 分钟前
MySQL基础
数据库·mysql
生命不息战斗不止(王子晗)29 分钟前
mysql基础语法面试题
java·数据库·mysql
umeelove3532 分钟前
Java进阶(ElasticSearch的安装与使用)
java·elasticsearch·jenkins
redaijufeng35 分钟前
Node.js(v16.13.2版本)安装及环境配置教程
java
知识分享小能手40 分钟前
MongoDB入门学习教程,从入门到精通,MongoDB应用程序设计知识点梳理(9)
数据库·学习·mongodb
齐齐大魔王1 小时前
linux-线程编程
java·linux·服务器
一直都在5721 小时前
Redis (一)
数据库·redis·缓存
字符串str1 小时前
sql的基本技术栈
数据库·sql·oracle