>  기사  >  데이터 베이스  >  오라클 쿼리 중복 데이터

오라클 쿼리 중복 데이터

王林
王林원래의
2023-05-13 21:46:059523검색

중복 데이터에 대한 Oracle 쿼리

데이터베이스에서 중복 데이터를 쿼리해야 하는 경우 Oracle에서 다양한 방법을 사용하여 이를 수행할 수 있습니다. Oracle에서 중복 데이터는 동일한 열에 동일한 값이 나타나는 경우가 많으며 이러한 값이 두 번 이상 나타납니다.

다음은 Oracle 중복 데이터를 쿼리하는 여러 가지 방법을 소개합니다.

방법 1: GROUP BY 및 HAVING 사용

GROUP BY 및 HAVING은 데이터를 그룹화하고 필터링하는 데 사용됩니다. 이 두 문을 함께 사용하여 중복 데이터를 쿼리할 수 있습니다.

예를 들어 직원 이름(ename)과 급여(sal)라는 두 개의 필드가 포함된 직원이라는 테이블이 있습니다. 급여가 중복된 직원의 이름과 급여를 쿼리하려면 다음 문을 사용할 수 있습니다.

SELECT ename, sal, COUNT() FROM 직원 GROUP BY ename, sal HAVING COUNT() >

위 쿼리를 실행하면 해당 문 이후에 급여가 반복되는 모든 직원의 이름과 급여를 얻을 수 있습니다.

방법 2: 윈도우 함수 사용

윈도우 함수는 쿼리 결과에서 집계 또는 분석 함수를 계산할 수 있는 방법입니다. 창 함수를 사용하여 중복 데이터를 쿼리할 수 있습니다.

예를 들어 주문 번호(order_id)와 판매량(sales)이라는 두 개의 필드가 포함된 주문이라는 테이블이 있습니다. 반복 판매가 있는 주문 번호와 판매량을 쿼리하려면 다음 문을 사용할 수 있습니다.

SELECT order_id, sales FROM ( SELECT order_id, sales, COUNT(*) OVER(PARTITION BY sales) AS cnt FROM Orders ) WHERE cnt > 1;

위 쿼리문을 실행하면 모든 반복 판매의 주문 번호와 판매량을 얻을 수 있습니다.

방법 3: 셀프 조인 사용

셀프 조인은 동일한 테이블의 서로 다른 인스턴스를 연결하여 데이터를 쿼리하는 방법입니다. 셀프 조인을 사용하여 중복 데이터를 쿼리할 수 있습니다.

예를 들어 고객 이름(이름)과 휴대폰 번호(전화)라는 두 개의 필드가 포함된 고객이라는 테이블이 있습니다. 휴대폰 번호가 중복된 고객의 이름과 휴대폰 번호를 쿼리하려면 다음 명령문을 사용할 수 있습니다.

SELECT c1.name, c1.phone FROM 고객 c1 JOIN 고객 c2 ON c1.phone = c2.phone AND c1.name < > c2.name;

위 쿼리문을 실행하면 중복된 휴대폰 번호가 포함된 모든 고객 이름과 휴대폰 번호를 얻을 수 있습니다.

Summary

오라클에서는 GROUP BY, HAVING, 윈도우 함수, 셀프 조인 등 다양한 문을 사용하여 반복되는 데이터를 쿼리할 수 있습니다. 이를 사용할 때 보다 효율적인 쿼리 효과를 얻으려면 실제 상황에 따라 적절한 방법을 선택해야 합니다. 동시에 쿼리 시간과 소모되는 리소스를 최대한 줄이기 위해 쿼리문 최적화에도 주의를 기울여야 합니다.

위 내용은 오라클 쿼리 중복 데이터의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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