>데이터 베이스 >MySQL 튜토리얼 >DISTINCT를 사용하여 SQL의 여러 열에서 고유한 값 조합을 찾으려면 어떻게 해야 합니까?

DISTINCT를 사용하여 SQL의 여러 열에서 고유한 값 조합을 찾으려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-23 05:47:08166검색

How Can I Use DISTINCT to Find Unique Combinations of Values Across Multiple Columns in SQL?

SQL: 여러 열에서 고유한 조합 식별

이 문서에서는 SQL의 여러 열에서 고유한 값 조합을 찾는 문제를 다루며, 특히 비활성으로 표시된 판매 기록을 업데이트하는 데 중점을 둡니다. 같은 날 같은 가격으로 발생하지 않은 판매를 식별하고 상태를 'ACTIVE'로 업데이트하는 것이 목표입니다. 간단한 DISTINCT 절은 단일 열에서만 작동하기 때문에 충분하지 않습니다.

GROUP BY 절은 강력한 솔루션을 제공합니다.

<code class="language-sql">SELECT a, b, c FROM t GROUP BY a, b, c;</code>

이는 a, bc 열의 고유한 조합을 기반으로 행을 그룹화하여 다중 열 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>

이 쿼리는 하위 쿼리를 사용하여 고유한 salepricesaledate 조합(여기서 COUNT(*) = 1)으로 매출을 식별합니다. 그런 다음 외부 쿼리는 이러한 판매의 status를 'ACTIVE'로 업데이트합니다.

GROUP BY 및 중첩 쿼리를 사용하면 여러 열의 고유한 값 조합을 기반으로 데이터를 효율적으로 관리하고 업데이트할 수 있습니다. 이는 복잡한 데이터 조작 작업을 처리하기 위한 강력하고 정확한 방법을 제공합니다.

위 내용은 DISTINCT를 사용하여 SQL의 여러 열에서 고유한 값 조합을 찾으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.