• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    미해결

집계함수 사고과정

22.12.12 08:42 작성 조회수 146

0

부서별 평균 급여와 개인 급여와의 차이 출력

-- analytic을 사용하지 않고 위와 동일한 결과 출력

위 문제의 풀이 사고과정을 다음과 같이 생각해봤는데

틀린 부분이 있다면 말씀 부탁드립니다

  1. emp 테이블에서 부서별 평균급여가 없다

  2. 부서별 평균급여를 만들어야 하는데 analytic을 사용하지 않으므로 테이블을 따로 만들어 붙인다

질문이 하나 더 있는데 analytic을 사용하지 않는다고 했는데 avg가 analytic 아닌가요? 조금 헷갈려서 여쭤봅니다.

답변 1

답변을 작성해보세요.

1

안녕하십니까,

  1. emp 테이블에서 부서별 평균급여가 없다

    => emp 테이블 자체에는 당연히 평균 급여가 없습니다.

     

  2. 부서별 평균급여를 만들어야 하는데 analytic을 사용하지 않으므로 테이블을 따로 만들어 붙인다

    => Analytic을 사용하지 않으면 group by deptno aggregation 함수 avg를 적용해야 하는데 group by deptno를 emp 테이블에 적용하게 되면 집합의 레벨이 deptno 단위로 변경되게 됩니다.

    때문에 emp 테이블 레벨로 데이터를 표출하되 deptno 단위로 평균 급여를 얻으려면 다시 emp 테이블과 deptno 단위로 group by 된 집합을 조인해 줘야 합니다.

     

    Analytic을 적용하면 emp 테이블 집합의 레벨을 그대로 유지하므로 이렇게 할 필요가 없습니다.

     

    그리고 group by 에 사용되는 avg는 보통 aggregation 함수라고 칭합니다.

     

    감사합니다.

ajh7457님의 프로필

ajh7457

질문자

2022.12.12

초면에 자꾸 사랑하게 됩니다 선생님

ㅋㅋ, 넘 감사합니다.