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

相关推荐
阿华田512几秒前
MySQL性能优化大全
数据库·mysql·性能优化
kaico20187 分钟前
python操作数据库
开发语言·数据库·python
被摘下的星星8 分钟前
MySQL 别名使用规则详解
数据库·mysql
墨着染霜华14 分钟前
MySQL 重复数据删除语句
数据库·mysql
ego.iblacat16 分钟前
PostgreSQL 数据库
数据库·postgresql
wgzrmlrm7444 分钟前
如何解决ORA-28040没有匹配的验证协议_sqlnet.ora版本兼容设置
jvm·数据库·python
一江寒逸44 分钟前
零基础从入门到精通MySQL(附加篇):面试八股文全集
数据库·mysql·面试
数厘1 小时前
2.6MySQL库表操作指南(电商数据分析专用)
数据库·mysql·数据分析
需要点灵感1 小时前
SQL Server 存储过程语法整理
数据库·sql
刘~浪地球1 小时前
数据库与缓存--分库分表实战指南
网络·数据库·缓存