>  기사  >  php教程  >  Oracle 고유 사용법

Oracle 고유 사용법

高洛峰
高洛峰원래의
2016-12-13 09:33:071468검색

distinct 키워드는 중복된 중복 레코드를 필터링하여 하나만 유지하는 데 사용되지만, 고유 레코드의 모든 값을 반환하는 데 사용하는 대신 고유 레코드 수만 반환하는 데 사용되는 경우가 많습니다. 그 이유는 구별은 이중 루프 쿼리로만 해결될 수 있기 때문이며, 이는 의심할 여지 없이 매우 많은 양의 데이터가 있는 웹 사이트의 효율성에 직접적인 영향을 미칠 것입니다.

예를 살펴보겠습니다.

table table

Field 1 Field 2 id 1 name a 2 b 3 c 4 c 5 b

라이브러리 구조는 대략 다음과 같습니다. 이는 단순한 예일 뿐이며 실제 상황은 훨씬 더 복잡합니다.

예를 들어, 하나의 명령문을 사용하여 중복되지 않은 이름을 가진 모든 데이터를 쿼리하려면 Unique를 사용하여 중복된 중복 레코드를 제거해야 합니다.

테이블에서 고유한 이름 선택 결과는 다음과 같습니다.

------------

name a b c

효과를 얻은 것 같은데, 내가 얻고 싶은 것은 id값인가요? 쿼리 문 변경:

테이블에서 고유한 이름, ID 선택

결과는 다음과 같습니다.

----------

id name 1 a 2 b 3 c 4 c 5 b

distinctct가 작동하지 않는 이유는 무엇인가요? 작동하지만 동시에 두 필드에 영향을 미칩니다. 즉, 제외하려면 ID와 이름이 동일해야 합니다. . . . . . .

쿼리 문을 변경해 보겠습니다.

select id, independent name from table

안타깝게도 오류 메시지 외에는 아무것도 얻을 수 없습니다. 구별은 시작 부분에 배치되어야 합니다. where 조건에 구별을 두는 것이 그렇게 어려운가요? 예, 여전히 오류가 보고됩니다.

------------------------------- ------ ------------------ ------ ---

다음 방법도 불가능합니다.

선택 * , 이름별로 테이블 그룹의 개수(고유 이름)

결과:

ORA-00979: GROUP BY 표현식이 아닙니다
00979 - "not a. GROUP BY 표현식"

여전히 오류를 보고합니다.

group by를 order by 및 제한 앞에 배치해야 합니다. 그렇지 않으면 오류가 보고됩니다.

--- ---------------------- --------------- --------- --------------- -----

이게 가능할 것 같아요

max(id), 이름 선택 테이블 그룹에서 이름으로;

결과:

id 이름

1a

2b

4c

5d


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