Oracle 使用分析函式刪除表中的重複行
在 hr 的 employee 表中插入重複資料,first_name 和 last_name 重複
insert into hr.employees (employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id) values
(210,'Janette','King','JKING2','650.555.8880',to_date('2009-03-25','yyyy-mm-dd'),'SA_REP',3500,0.25,145,80);
insert into hr.employees (employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id) values
(211,'Patrick','Sully','PSULLY2','650.555.8881',to_date('2009-03-25','yyyy-mm-dd'),'SA_REP',3500,0.25,145,80);
insert into hr.employees (employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id) values
(212,'Allan','McEwen','AMCEWEN2','650.555.8882',to_date('2009-03-25','yyyy-mm-dd'),'SA_REP',3500,0.25,145,80);
查詢重複資料
SQL> select employee_id, first_name, last_name
2 from hr.employees
3 where first_name in ('Janette', 'Patrick', 'Allan')
4 and last_name in ('King', 'Sully', 'McEwen')
5 order by first_name, last_name;
EMPLOYEE_ID FIRST_NAME LAST_NAME
----------- -------------------- -------------------------
158 Allan McEwen
212 Allan McEwen
210 Janette King
156 Janette King
211 Patrick Sully
157 Patrick Sully
已選擇6行。
刪除重複資料
delete from hr.employees
where rowid in (select rowid
from (select first_name,
last_name,
rowid,
row_number() over(partition by first_name, last_name order by employee_id) staff_row
from hr.employees)
where staff_row > 1);
insert into hr.employees (employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id) values
(210,'Janette','King','JKING2','650.555.8880',to_date('2009-03-25','yyyy-mm-dd'),'SA_REP',3500,0.25,145,80);
insert into hr.employees (employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id) values
(211,'Patrick','Sully','PSULLY2','650.555.8881',to_date('2009-03-25','yyyy-mm-dd'),'SA_REP',3500,0.25,145,80);
insert into hr.employees (employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id) values
(212,'Allan','McEwen','AMCEWEN2','650.555.8882',to_date('2009-03-25','yyyy-mm-dd'),'SA_REP',3500,0.25,145,80);
查詢重複資料
SQL> select employee_id, first_name, last_name
2 from hr.employees
3 where first_name in ('Janette', 'Patrick', 'Allan')
4 and last_name in ('King', 'Sully', 'McEwen')
5 order by first_name, last_name;
EMPLOYEE_ID FIRST_NAME LAST_NAME
----------- -------------------- -------------------------
158 Allan McEwen
212 Allan McEwen
210 Janette King
156 Janette King
211 Patrick Sully
157 Patrick Sully
已選擇6行。
刪除重複資料
delete from hr.employees
where rowid in (select rowid
from (select first_name,
last_name,
rowid,
row_number() over(partition by first_name, last_name order by employee_id) staff_row
from hr.employees)
where staff_row > 1);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-1989906/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle中刪除表中的重複資料Oracle
- 刪除oracle重複值Oracle
- mysql 刪除表中重複的資料MySql
- Oracle如何刪除表中重複記錄保留第一條Oracle
- PostgreSQL刪除表中重複資料SQL
- C# 批次刪除Excel中的重複行C#Excel
- sqlserver中刪除重複資料SQLServer
- JavaScript刪除字串中重複字元JavaScript字串字元
- ORACLE批量刪除無主鍵重複資料Oracle
- 刪除排序陣列中的重複項排序陣列
- 使用Java Stream API中DistinctBy刪除重複資料JavaAPI
- VSCode刪除重複的空行VSCode
- oracle級聯刪除使用者,刪除表空間Oracle
- MS SQL Server 刪除重複行資料SQLServer
- ES6刪除字串中重複的元素字串
- 刪除有序陣列中的重複項 II陣列
- 刪除字串中的所有相鄰重複項字串
- mysql 刪除重複項MySql
- JavaScript 刪除重複字元JavaScript字元
- 刪除重複資料
- Oracle億級大表高效刪除案例分析Oracle
- 刪除重複id的記錄
- 怎樣使用 awk 刪掉檔案中重複的行
- c#刪除有序陣列中的重複項C#陣列
- 題目:刪除排序陣列中的重複項排序陣列
- 0026-刪除有序陣列中的重複項陣列
- Oracle中Decode()函式的使用Oracle函式
- mongodb刪除重複資料MongoDB
- JavaScript 刪除字串重複字元JavaScript字串字元
- oracle刪除重資料方法Oracle
- Oracle快速找回被刪除的表Oracle
- 從未排序的連結串列中刪除重複項排序
- [12][02][26] 刪除排序陣列中的重複項排序陣列
- JavaScript陣列刪除重複元素JavaScript陣列
- JavaScript 刪除陣列重複元素JavaScript陣列
- Remove Duplicate Letters 刪除重複元素REM
- ORACLE 在缺少主鍵ID的情況下刪除重複資料,只保留一行Oracle
- 牛客(刪除連結串列中重複節點)
- LeetCode 26 號問題 刪除陣列中的重複項LeetCode陣列