집 >데이터 베이스 >MySQL 튜토리얼 >DISTINCT를 사용하여 SQL의 여러 열에서 고유한 값 조합을 찾으려면 어떻게 해야 합니까?
SQL: 여러 열에서 고유한 조합 식별
이 문서에서는 SQL의 여러 열에서 고유한 값 조합을 찾는 문제를 다루며, 특히 비활성으로 표시된 판매 기록을 업데이트하는 데 중점을 둡니다. 같은 날 같은 가격으로 발생하지 않은 판매를 식별하고 상태를 'ACTIVE'로 업데이트하는 것이 목표입니다. 간단한 DISTINCT
절은 단일 열에서만 작동하기 때문에 충분하지 않습니다.
GROUP BY
절은 강력한 솔루션을 제공합니다.
<code class="language-sql">SELECT a, b, c FROM t GROUP BY a, b, c;</code>
이는 a
, b
및 c
열의 고유한 조합을 기반으로 행을 그룹화하여 다중 열 DISTINCT
과 동일한 결과를 효과적으로 얻습니다(단, GROUP BY
은 더 많은 기능을 제공합니다).
판매 기록을 업데이트하려면 중첩 쿼리가 효과적입니다.
<code class="language-sql">UPDATE sales SET status = 'ACTIVE' WHERE id IN ( SELECT id FROM sales S INNER JOIN ( SELECT saleprice, saledate FROM sales GROUP BY saleprice, saledate HAVING COUNT(*) = 1 ) T ON S.saleprice = T.saleprice AND S.saledate = T.saledate );</code>
이 쿼리는 하위 쿼리를 사용하여 고유한 saleprice
및 saledate
조합(여기서 COUNT(*) = 1
)으로 매출을 식별합니다. 그런 다음 외부 쿼리는 이러한 판매의 status
를 'ACTIVE'로 업데이트합니다.
GROUP BY
및 중첩 쿼리를 사용하면 여러 열의 고유한 값 조합을 기반으로 데이터를 효율적으로 관리하고 업데이트할 수 있습니다. 이는 복잡한 데이터 조작 작업을 처리하기 위한 강력하고 정확한 방법을 제공합니다.
위 내용은 DISTINCT를 사용하여 SQL의 여러 열에서 고유한 값 조합을 찾으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!