SQL如何刪除所有欄位都相同的重複數據?

2021-12-28 SQL資料庫運維

點擊藍色字關注「SQL資料庫運維」

SQL Server資料庫:有時候在處理數據時會遇到不加主鍵的表,導致數據表內出現了一模一樣的數據,剛開始第一時間想到的方式是,把兩條數據全部刪除,然後再插入一條,但是這種可能數據量比較少的話,還可以,沒有那麼麻煩,一旦出現大量的數據需要處理,就有點浪費時間了,後來又想到了下面這種方式,個人覺得還不錯,今天就簡單介紹下這個如何在數據表內刪除所有欄位都相同的重複數據。

首先創建一個臨時表並插入一些數據,用於模擬該場景。

create table (    ID int not null,    Name varchar(20) null)insert into insert into insert into insert into insert into 

測試表結果查詢

ID Name1測試1‍‍測試2測試22測試3測試

去重並刪除重複數據SQL語句:

with TEST as(    select ID,Name,row_number() over(partition by ID,Name order by ID) RowNum     from )delete from TEST where RowNum > 1select * from 

去重後結果查詢:

測試到此結束,記得最後再把測試用的臨時表刪除

趕快試試吧!

點擊關注「SQL資料庫運維」,後臺回復關鍵字:進群,帶你進入高手如雲的技術交流群。後臺回復關鍵字:SQL,獲取學習資料。

相關焦點

  • SQL查找刪除重複行
    多數情況下很簡單:它們某一列具有相同的值。本文採用這一定義,或許你對「重複」的定義比這複雜,你需要對sql做些修改。如何刪除重複行        一個相關的問題是如何刪除重複行。一個常見的任務是,重複行只保留一行,其他刪除,然後你可以創建適當的索引,防止以後再有重複的行寫入資料庫。同樣,首先是弄清楚重複行的定義。你要保留的是哪一行呢?第一行,或者某個欄位具有最大值的行?本文中,假設要保留的是第一行——id欄位具有最小值的行,意味著你要刪除其他的行。
  • SQL語句大全,所有的SQL都在這裡
    當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重複行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。 B:EXCEPT 運算符 EXCEPT運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行並消除所有重複行而派生出一個結果表。
  • SQL語句解決重複數據並進行單一入庫問題,你值得了解
    ,需要不停的向資料庫中寫入數據,那這些數據中有的是重複的,重複的數據寫入資料庫既沒有意義,也浪費內存空間,所以我們需要想一個辦法來解決數據重複插入的問題。02解決方案:這裡有三個解決方法:1、利用ignore關鍵字方法原理:忽略了有唯一索引欄位的相同數據
  • SQL中刪除重複數據問題
    ,刪除保留其中一條(是否重複判斷基準為多個欄位)解決方案碰到這樣的問題我們先分解步驟來看創建測試數據找到重複的數據刪除重複的數據並且保留一行創建測試數據我們創建一個人員信息表並在裡面插入一些重複的數據。
  • MySQL刪除重複數據
    問:假如有一個student(table_id,name,age)的表,有重複name和age數據, 怎麼寫出delete重複數據的sql?
  • SQL中如何刪除重複數據,只保留其中一行
    ,刪除保留其中一條(是否重複判斷基準為多個欄位)解決方案碰到這樣的問題我們先分解步驟來看創建測試數據找到重複的數據刪除重複的數據並且保留一行創建測試數據我們創建一個人員信息表並在裡面插入一些重複的數據。
  • SQL如何刪除重複數據
    在使用資料庫時,如何刪除重複數據? 如圖所示:用戶表(user)數據1、輸入查詢語句(查詢name重複數據)select * from user where name in (select name from user group by name having count(name) > 1)
  • Oracle資料庫刪除重複數據的情況!
    重複的數據可能有這樣兩種情況,第一種時表中只有某些欄位一樣,第二種是兩行記錄完全一樣。Oracle資料庫重複數據刪除技術有如下優勢:更大的備份容量、數據能得到持續驗證、有更高的數據恢復服務水平、方便實現備份數據的容災。   一、刪除部分欄位重複數據   先來談談如何查詢重複的數據吧。
  • sql刪除重複語句
    1、給表增加一個自增長的列作為主鍵,這樣的話,完全重複的數據就有了不一樣的地方alter table 表名 add column id int PRIMARY KEY AUTO_INCREMENT;`2、刪除重複的列中ID較小的那一個,保留較大的iddelete t1 from test t1inner join test t2wheret1.id < t2.id ANDt1
  • 高效刪除Oracle中重複數據的方法
    重複數據刪除技術可以提供更大的備份容量,實現更長時間的數據保留,還能實現備份數據的持續驗證,提高數據恢復服務水平,方便實現數據容災等。 重複的數據可能有這樣兩種情況,第一種時表中只有某些欄位一樣,第二種是兩行記錄完全一樣。Oracle資料庫重複數據刪除技術有如下優勢:更大的備份容量、數據能得到持續驗證、有更高的數據恢復服務水平、方便實現備份數據的容災。
  • 給數據分析獅看的SQL--欄位的操作<一>
    1、大家好,繼續我們SQL系列課程的分享,上一節我們分享了如何獲取數,今天我們來看,針對數據欄位<數據列>的一些操作。2、數據欄位的常用操作:我們先來看看我們的今天要用的數據源:數據源是存放在test資料庫下的data表裡的一個銷售明細。在寫代碼前先說寫代碼的準備和如何執行代碼。
  • MySQL如何刪除重複數據
    MySQL中經常會遇到重複的數據,那麼當我們遇到重複的時候的時候,如果定位哪些數據是有重複的記錄?如何刪除重複的數據?我們該怎麼做呢?接下來我們一步步來分析一下遇到這樣的情況後,該如何處理。初始化實驗環境我們創建一個簡單的表user_info,然後基於這個表進行分析重複數據的處理情況。其中的id為自增主鍵,name、sex、age三個列是我們判斷是否為重複數據的key,如果這三列的值相同,則認為這行數據為重複數據。
  • C Sharp 數據操作系列 - 1. SQL基礎操作
    與之相同的就是在資料庫這個江湖裡,各大門派都在標準SQL裡添加了自己的東西,讓SQL成了一個操持著五湖四海的方言的大家族。比如說微軟的Transcat-SQL和PL/SQL。2.常見配置項:identity 表示該列是個自增列,一般是起始1,增長步長為1primary key 表示該列是主鍵列,只能有一個主鍵not null 表示該欄位非空,如果是空值進來則會報錯unique 表示該欄位的值不能出現重複而數據類型則因為資料庫不同會有一些細微的差別,所以這裡就不錯過多介紹了。
  • 如何實現mysql刪除重複數據,僅保留一條
    加班原因是上線,解決線上資料庫存在重複數據的問題,發現了程序的bug,很好解決,有點問題的是,修正線上的重複數據。線上庫有6個表存在重複數據,其中2個表比較大,一個96萬+、一個30萬+,因為之前處理過相同的問題,就直接拿來了上次的Python去重腳本,腳本很簡單,就是連接資料庫,查出來重複數據,循環刪除。
  • sql:刪除重複數據並且保留id最小的一條
    當測試資料庫中,有重複數據會導致selectOne
  • Mysql sql語句大全
    1、說明:創建資料庫CREATE databasename2、說明:刪除資料庫drop dbname3、說明:備份sql server--- 創建 備份數據的 deviceUSE masterEXEC 'disk''testBack''c:\mssql7backup\MyNwind_1.dat
  • oracle常用SQL語句(匯總版)
    INSERT 語句插入這個欄位值為: 序列號的名稱.NEXTVAL2.DELETE (刪除數據表裡記錄的語句)DELETE FROM表名 WHERE 條件;注意:刪除記錄並不能釋放ORACLE裡被佔用的數據塊表空間.
  • SQL 資料庫語句
    當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重複行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。B:EXCEPT 運算符EXCEPT運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行並消除所有重複行而派生出一個結果表。
  • SQL小技巧:一張表中存在兩行完全一致的數據,如何刪除?
    但每個人對資料庫的掌握程度和應用場景不同,有時候可能創建了一張表(如上圖),陰差陽錯的沒有設置主鍵,再陰差陽錯的插入了兩條或多條一模一樣的數據,悲劇就這樣產生了。重複數據是無法直接刪除的!前面無法寫腳本,是因為where後面的條件無從下手,現在有了唯一區分的欄位就不一樣了。將數據表結構還原表結構如何還原到原來的樣子呢?
  • 新鮮出爐的SQL語句大全
    B:EXCEPT運算符EXCEPT運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行並消除所有重複行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時(EXCEPT ALL),不消除重複行。