oracle 去重

Oracle去重

在Oracle中进行去重的SQL语句有以下几种:

1.使用DISTINCT关键字

使用SELECT DISTINCT列名 FROM 表名来选择唯一的值。例如:SELECT DISTINCT column_name FROM table_name;

2.使用GROUP BY子句

使用GROUP BY子句将重复的值分组,并使用聚合函数如COUNT、SUM等对每个组进行操作。例如:SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;

3.使用ROW_NUMBER函数

使用ROW_NUMBER函数为每行数据分配一个唯一的行号,然后通过筛选行号为1的数据来实现去重。例如:SELECT column_name FROM (SELECT column_name, ROW_NUMBER() OVER (PARTITION BY column_name ORDER BY column_name) AS row_num FROM table_name) WHERE row_num = 1;

4.使用EXISTS子查询

通过在子查询中使用EXISTS关键字来检查是否存在重复的记录,并筛选出唯一的值。例如:SELECT column_name FROM table_name t1 WHERE EXISTS (SELECT 1 FROM table_name t2 WHERE t1.column_name = t2.column_name AND t1.rowid <> t2.rowid);

5. 使用with result

通过在查询中使用 with result 来检查是否存在重复的记录,并筛选出唯一的值。

例如:with result as ( select * from ( select t1.*, ROW_NUMBER() OVER (PARTITION BY column_name ORDER BY column_name desc) RN from table_name t1 ) t2 where t2.RN = 1)

SELECT * FROM RESULT

相关推荐
FIN技术铺3 分钟前
问:数据库的六种锁机制实践总结?
数据库·sql·oracle
程序员劝退师_32 分钟前
优惠券秒杀的背后原理
java·数据库
Gauss松鼠会35 分钟前
GaussDB全密态数据库等值查询
数据库·oracle·gaussdb
JSUITDLWXL37 分钟前
在Oracle数据中更新整个对象和更新对象的某几个字段时,他们的锁是相同的吗
数据库·oracle
杏花春雨江南37 分钟前
ddl/dml/dcl
数据库·oracle
Matrix701 小时前
HBase理论_HBase架构组件介绍
大数据·数据库·hbase
不太灵光的程序员1 小时前
【HBase分布式数据库】第七章 数据的导入导出 importtsv导入数据
数据库·分布式·hbase
Mephisto.java1 小时前
【大数据学习 | HBASE高级】region split机制和策略
数据库·学习·hbase
Lucifer三思而后行1 小时前
YashanDB YAC 入门指南与技术详解
数据库·后端
大气层煮月亮1 小时前
python调用MySql详细步骤
数据库·mysql