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

相关推荐
倔强的石头_1 小时前
Navicat Premium 与金仓数据库融合实践:高效管理国产数据库新方案
数据库
程序新视界1 小时前
为什么要尽量将MySQL表字段要设置为NOT NULL?
数据库·mysql·dba
怪兽20142 小时前
SQL优化手段有哪些
java·数据库·面试
lypzcgf2 小时前
FastbuildAI后端数据库模块注册分析
数据库·ai应用·ai创业·智能体平台·ai应用平台·agent平台·fastbuildai
xyy20253 小时前
Spring事务的传播方式
java·数据库·spring
非凡的世界3 小时前
Thinkphp8 Redis队列与消息队列topthink/think-queue 原创
数据库·redis·bootstrap·thinkphp
yookay zhang3 小时前
DM线程的管理知识学习
数据库
l1t4 小时前
测试DuckDB电子表格读取插件rusty_sheet 0.2版
数据库·rust·插件·xlsx·duckdb
TiAmo zhang5 小时前
SQL Server 2019实验 │ 表数据插入、修改和删除
数据库·oracle
慕容雪_5 小时前
MySQL去除表、字段注释
数据库·mysql