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

相关推荐
TDengine (老段)2 小时前
快速掌握时序数据库 + TDengine 学习指南
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
2401_832298102 小时前
云服务器 vs 传统物理服务器,企业该如何选择?
sql
xixixi777772 小时前
进一步了解一下现代数字经济的核心动脉——DCI(数据中心互联 )
网络·数据库·安全·光通信·数据·通信·dci
222you2 小时前
在云服务器上配置redis环境(OpenCloudOS)
数据库·redis·缓存
智能化咨询2 小时前
(99页PPT)智慧景区一体化建设方案(附下载方式)
大数据·数据库
AI题库2 小时前
PostgreSQL 18 从新手到大师:实战指南 - 1.2 关系型数据库基础
数据库·postgresql
我可以将你更新哟3 小时前
【爬虫】爬取斗罗大陆漫画,面向对象封装(存入数据库)
数据库·爬虫·python
忙里偷闲学python3 小时前
mysql
linux·数据库·mysql·oracle
byzh_rc3 小时前
[算法设计与分析-从入门到入土] 递归
数据库·人工智能·算法·机器学习·支持向量机