테이블에서 여러 열을 검색하는 쿼리에서는 다음을 기준으로 중복 행을 제외하는 것이 바람직할 수 있습니다. 다른 열의 고유 값을 유지하면서 특정 열. DISTINCT 및 GROUP BY와 같은 기존 절이 전체 행에서 작동하므로 이는 어려울 수 있습니다.
이러한 요구를 해결하기 위해 ROW_NUMBER() 함수를 사용할 수 있습니다. 이 함수는 지정된 열로 정의된 파티션 내의 각 행에 고유한 일련 번호를 할당합니다. ROW_NUMBER()를 PARTITION BY 및 ORDER BY 절과 결합하면 원하는 열의 값을 기준으로 각 파티션 내의 행 순위를 생성할 수 있습니다.
다음 쿼리를 고려하세요.
SELECT ID, Email, ProductName, ProductModel FROM Products
고유한 이메일만 반환하도록 이 쿼리를 수정하려면 다음을 사용할 수 있습니다. code:
SELECT * FROM ( SELECT ID, Email, ProductName, ProductModel, ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) AS rn FROM Products ) AS a WHERE rn = 1
ROW_NUMBER() 함수는 이메일 열을 기준으로 결과를 파티션으로 나누고 각 행에 파티션 내 고유한 순위를 할당합니다. 후속 ORDER BY 절은 각 파티션에서 마지막으로 발생하는 행의 순위가 첫 번째가 되도록 보장합니다. 마지막 WHERE 절은 순위가 1인 행만 포함하도록 결과를 필터링하여 중복 이메일을 효과적으로 제거합니다.
이 접근 방식을 사용하면 모든 열을 분할 및 순위 지정의 기준으로 지정할 수 있으므로 쿼리를 유연하게 조정할 수 있습니다. 귀하의 특정 요구 사항에 맞게.
위 내용은 다른 열 데이터를 유지하면서 SQL SELECT 문에서 중복 이메일을 어떻게 제거할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!