2012-08-13 1 views
2

SQL Server 2005를 사용하여 특정 항목의 모든 중복 항목을 찾고 중복 항목 수와 같도록 수량을 변경하려고합니다. 그런 다음 하나만 제외하고 모든 중복 행을 제거 할 계획입니다.중복 행을 업데이트 한 다음 하나만 제외하고 모두

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

SELECT * FROM Item 

어떤 조언을 : 여기

는 지금까지이 무엇인가?

+1

테이블 구조가 무엇입니까? 테이블에 기본 키가 있습니까? –

+0

아니요. – Samter

답변

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 절이 업데이트를 수행합니다.