> 데이터 베이스 > MySQL 튜토리얼 > 하위 쿼리 없이 Oracle에서 그룹당 상위 N개 결과를 얻는 방법은 무엇입니까?

하위 쿼리 없이 Oracle에서 그룹당 상위 N개 결과를 얻는 방법은 무엇입니까?

DDD
풀어 주다: 2025-01-19 15:01:38
원래의
251명이 탐색했습니다.

How to Get the Top N Results per Group in Oracle Without Subqueries?

Oracle 데이터베이스의 각 그룹에 대한 최고의 결과 얻기

질문:

하위 쿼리를 사용하지 않고 Oracle 데이터베이스의 각 그룹에 대한 상위 N개 결과를 가져옵니다.

예:

직원 정보가 포함된 주어진 테이블을 고려해보세요.

emp_id name occupation
1 John Smith Accountant
2 Jane Doe Engineer
3 Jack Black Funnyman

하위 쿼리를 사용하지 않고 각 직업에서 직원 3명(상위 3명)을 검색하는 것이 목표입니다.

해결책:

<code class="language-sql">select *
from (select emp_id, name, occupation,
      rank() over (partition by occupation order by emp_id) as rank
      from employee)
where rank <= 3;</code>
로그인 후 복사

지침:

rank() 기능은 해당 직업 내에서 각 직원에게 순위를 지정하는 데 사용됩니다. partition by occupation 절은 각 직업이 별도로 순위를 매기는 것을 보장합니다.

rank <= 3 이 조건은 각 직업에서 순위가 ​​3 이하인 직원을 필터링합니다.

추가 정보:

rank() 기능에 대한 자세한 내용은 다음 리소스를 참조하세요. https://www.php.cn/link/56138186020206c2b1d99be41c8dc9b8

위 내용은 하위 쿼리 없이 Oracle에서 그룹당 상위 N개 결과를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿