PostgreSQL Distinct On 关键字的用法

在PostgreSQL中,DISTINCT ON关键字用于从每个分组中选择一条记录。它允许我们根据指定的列对结果集进行去重和排序。

示例

复制代码
SELECT DISTINCT ON (course) course, id, name, score
FROM student
ORDER BY course, score DESC;

在这个示例中,我们从student表中选择每个课程分组中的最高分记录。

使用方法

基本语法:

复制代码
SELECT DISTINCT ON (column1, column2, ...) column1, column2,
FROM table_name
ORDER BY column1, column2, ...;

示例:

复制代码
SELECT DISTINCT ON (class_id) id, name, age
FROM students
ORDER BY class_id, age DESC;

注意事项

如果没有使用ORDER BY子句,返回的第一条数据是随机的。

DISTINCT ON只会去除部分重复的行,保留每个分组中的第一条记录。

通过使用DISTINCT ON,我们可以更灵活地处理数据分组和去重操作,满足特定的查询需求。

相关推荐
fen_fen15 小时前
Oracle建表语句示例
数据库·oracle
砚边数影17 小时前
数据可视化入门:Matplotlib 基础语法与折线图绘制
数据库·信息可视化·matplotlib·数据可视化·kingbase·数据库平替用金仓·金仓数据库
orange_tt17 小时前
Djiango配置Celery
数据库·sqlite
云小逸18 小时前
【nmap源码学习】 Nmap网络扫描工具深度解析:从基础参数到核心扫描逻辑
网络·数据库·学习
肉包_51118 小时前
两个数据库互锁,用全局变量互锁会偶发软件卡死
开发语言·数据库·c++
霖霖总总18 小时前
[小技巧64]深入解析 MySQL InnoDB 的 Checkpoint 机制:原理、类型与调优
数据库·mysql
此刻你19 小时前
常用的 SQL 语句
数据库·sql·oracle
それども20 小时前
分库分表的事务问题 - 怎么实现事务
java·数据库·mysql
·云扬·20 小时前
MySQL Binlog 配置指南与核心作用解析
数据库·mysql·adb
天空属于哈夫克320 小时前
Java 版:利用外部群 API 实现自动“技术开课”倒计时提醒
数据库·python·mysql