oracle 取不重复

2023年 8月 3日 15.5k 0

在数据库中,有时需要查询出不重复的记录,这个时候我们可以使用Oracle中提供的DISTINCT关键字来解决这个问题。

比如,我们有一个学生表 student,其中有两个字段,分别为 id 和 name,现在我们想要查询出不重复的学生姓名:

SELECT DISTINCT name FROM student;

这样就可以查询出不重复的学生姓名了。

还有一种情况,如果我们需要查询不重复的一组记录,可以使用GROUP BY关键字和聚合函数来实现。比如我们有一个订单表 order,其中有三个字段,分别为 id, customer_id 和 total,现在需要查询每个客户累计消费金额不重复的记录:

SELECT customer_id, SUM(total) FROM order GROUP BY customer_id;

这样就可以查询出每个客户累计消费金额不重复的记录了。

在使用DISTINCT关键字时需要注意的一点是,如果要查询的字段较多,需要保证所有字段的值完全相同才能算作重复记录。

举个例子,如果我们有一个用户表 user,其中有三个字段,分别为 id, name 和 email,如果我们只想查询 name 和 email 不重复的记录,代码如下:

SELECT DISTINCT name, email FROM user;

那么如果有两条记录,分别为 (1, John, john@hotmail.com) 和 (2, John, john@yahoo.com),虽然name是重复的,但email不同,这两条记录仍然会被查询出来,因为在name与email两个字段上,它们并不完全相同。

总之,使用DISTINCT关键字可以查询出不重复的记录,是Oracle中非常有用的一个功能。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论