2016-07-21 80 views
1

我有一個包含3列的表,第一列是'name'。一些名字被輸入兩次,大約三次,還有一次以上。我想只爲每個名稱保留一個值並刪除多餘的行。 沒有主鍵或ID列。 表中有大約100萬行。 想在SQL中使用一個查詢(最好)刪除14.有人可以幫忙嗎?在SQL中刪除多個具有相同值的行14

Name column2 column3 
Suzy   
Suzy   
Suzy   
John   
John   
George  
George  
George  
George  

想擁有它爲:

Name column2 column3 
Suzy   
John   
George 

很多感謝

回答

2

您可以使用ROW_NUMBER函數,試試這個樣子,

WITH CTE 
AS (
    SELECT NAME 
     ,column2 
     ,column3 
     ,RN = ROW_NUMBER() OVER (
      PARTITION BY NAME ORDER BY NAME 
      ) 
    FROM <YourTableName> 
    ) 
DELETE 
FROM CTE 
WHERE RN > 1 
相關問題