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
相关推荐
Felix_XXXXL2 小时前
mysql查看binlog日志
java·后端
n***63273 小时前
MySQL数据库的数据文件保存在哪?MySQL数据存在哪里
数据库·mysql
leonardee3 小时前
Plugin ‘mysql_native_password‘ is not loaded`
java·后端
SelectDB3 小时前
从 Flink 到 Doris 的实时数据写入实践——基于 Flink CDC 构建更实时高效的数据集成链路
数据库
普通网友3 小时前
使用Flask快速搭建轻量级Web应用
jvm·数据库·python
珹洺3 小时前
Java-Spring入门指南(三十一)Android意图(Intent)
android·java·spring
Seven973 小时前
剑指offer-39、平衡⼆叉树
java
q***18843 小时前
Spring Boot 3.3.4 升级导致 Logback 之前回滚策略配置不兼容问题解决
java·spring boot·logback
k***92163 小时前
redis连接服务
数据库·redis·bootstrap
T-BARBARIANS3 小时前
mariadb galera集群在Openstack中的应用
数据库·负载均衡