반응형
Oracle에서 그룹화 기준과 파티션별로 그룹화
오라클 창고에서 레코드를 가져오기 위해 쿼리를 작성하고 있습니다.몇 개의 테이블에 조인하는 간단한 Select Query이며 집계할 열이 거의 없습니다.그래서 나머지 열에 Groupby를 사용하게 되었습니다.
제가 10개 정도의 열을 고르고 있는데, 그 중 5개가 집합 열입니다.그래서 나머지 5개의 열에 그룹을 붙여야 합니다.그룹화를 하지 않고 도출하고자 하는 각 집계 열에 오버(partition by) 조항을 사용함으로써 동일한 결과를 얻을 수도 있습니다.
창고와 일반적인 것 중 어느 것이 더 나은지 잘 모르겠습니다.
그들은 같지 않습니다.
이렇게 하면 3개의 행이 반환됩니다.
select deptno, count(*) c from emp group by deptno;
DEPTNO C
------ -
10 3
20 5
30 6
이 경우 14개가 반환됩니다.
select deptno, count(*) over (partition by deptno) c from emp;
DEPTNO C
------ -
10 3
10 3
10 3
20 5
20 5
20 5
20 5
20 5
30 6
30 6
30 6
30 6
30 6
30 6
이 링크 확인 집계 함수와 분석 함수의 주요 차이점은 분석 함수가 집계 결과를 제공하더라도 결과 집합을 그룹화하지 않는다는 것입니다.각 레코드에 그룹 값을 여러 번 반환합니다.
와 함께PARTITON BY
하나의 쿼리에서 이 작업을 수행하여 다른 계산을 얻거나 그룹화하는 것이 가능합니다.
select
DISTINCT deptno, count(*) over (partition by deptno) c,
COUNT(*) OVER (PARTITION BY NULL) AS TOTAL
from emp;
언급URL : https://stackoverflow.com/questions/6847814/group-by-vs-partition-by-in-oracle
반응형
'source' 카테고리의 다른 글
사용자 지정 게시 상태가 나타나지 않음 (0) | 2023.09.24 |
---|---|
줄의 마지막 글자를 얻는 방법은? (0) | 2023.09.24 |
저장 프로시저 PLS-00201에서 Oracle nvl2가 작동하지 않음: 식별자 'NVL2'를 선언해야 합니다. (0) | 2023.09.24 |
jquery 태그 클릭 이벤트 (0) | 2023.09.24 |
텍스트 보기에 큰따옴표(") 기호를 표시하는 방법은 무엇입니까? (0) | 2023.09.24 |