2012-08-13 77 views
2

我正在使用SQL Server 2005來嘗試查找某個項目的所有重複項並更改數量,以便它將等於重複項的數量。然後我打算刪除除一個之外的所有重複行。更新重複行然後刪除除了一個之外的所有

這裏是我到目前爲止有:

UPDATE Table 
SET Quantity = COUNT(Item) 
WHERE COUNT(Item) > 1 

SELECT * FROM Item 

有什麼建議?

+1

什麼是你的表格結構?你的桌子有主鍵嗎? – 2012-08-13 19:15:06

+0

不,它不。 – Samter 2012-08-13 19:15:53

回答

1

這裏有一種方法可以做你想做的事。

with toupdate as (
    select item, count(*) as cnt 
    from t 
    group by item 
    ) 
update t 
    set quantity = cnt 
    from toupdate 
    where t.item = toupdate.item 

CTE計算每個項目的值。更新子句然後執行更新。

相關問題