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,我们可以更灵活地处理数据分组和去重操作,满足特定的查询需求。

相关推荐
CNSSIRD数据库几秒前
中国企业环境信用数据库2003-2026
大数据·数据库·数据分析·论文笔记
Zhu75823 分钟前
docker环境快速部署postgresql数据库18及以上版本
postgresql·容器
fd320029 分钟前
达梦数据库更新统计信息后仍走旧执行计划解决方案
数据库
华章酱1 小时前
MySQL幻读是怎么出现的
数据库·mysql·幻读
浅念-1 小时前
Redis基础详解:单线程模型、String与Hash数据结构
服务器·数据库·redis·sql·mysql·nosql数据库·nosql
updayday8542 小时前
离职域账号状态变更与Ping64操作记录核对
大数据·网络·数据库·安全·智能路由器
Nturmoils2 小时前
只恢复一张表,别把整个库都还回去
数据库
龙腾AI白云2 小时前
大语言模型:从语言理解到通用智能的跃迁
数据库·人工智能·机器学习·知识图谱
SelectDB3 小时前
快手基于 Apache Doris 千亿多模态检索的实践
大数据·数据库·数据分析
SelectDB3 小时前
StarRocks 迁移至 Apache Doris 完整指南:三步完成结构、数据与业务平滑切换
大数据·数据库·数据分析