[sql] UPDATE 문으로 특정 열의 데이터 중복된 값 일괄 수정하기
이번에는 SQL에서 UPDATE
문을 사용하여 특정 열의 데이터 중복된 값들을 일괄적으로 수정하는 방법에 대해 알아보겠습니다.
중복된 값 확인
먼저, 중복된 값을 확인하기 위해 SELECT
문과 GROUP BY
절을 사용하여 해당 열의 중복된 값을 추출합니다.
SELECT column_name, COUNT(*)
FROM table_name
GROUP BY column_name
HAVING COUNT(*) > 1;
위의 쿼리를 사용하면, 중복된 값이 있는 경우 해당 값과 그 갯수를 확인할 수 있습니다.
중복된 값 수정
다음으로 중복된 값들을 수정하기 위해 UPDATE
문을 사용합니다. 이때, ROW_NUMBER()
함수를 사용하여 중복된 값을 구분한 후 원하는 값을 할당할 수 있습니다.
WITH CTE AS (
SELECT column_name,
ROW_NUMBER() OVER(PARTITION BY column_name ORDER BY (SELECT NULL)) AS rn
FROM table_name
)
UPDATE CTE
SET column_name = 'new_value' || rn;
위의 쿼리에서 ROW_NUMBER()
함수는 중복된 값을 구분하기 위해 사용되고, UPDATE
문을 통해 새로운 값을 할당합니다.
이제 SQL에서 UPDATE
문을 사용하여 특정 열의 데이터 중복된 값들을 일괄적으로 수정하는 방법을 알아보았습니다.