我正在使用SQL Server 2005尝试查找某个项目的所有重复项并更改数量,以使其等于重复项目的数量。然后我计划删除除了一行之外的所有重复行。
这是我到目前为止所拥有的:
UPDATE Table
SET Quantity = COUNT(Item)
WHERE COUNT(Item) > 1
SELECT * FROM Item
有什么建议吗?
答案 0 :(得分: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计算每个项目的值。然后update子句进行更新。