나쁜 제목에 대한 사과, 나는 이것에 대한 좋은 제목이 무엇인지 확신하지 못했습니다.
이것은 현재 작업중 인 데이터입니다 (간단한보기).
Agent | Commission
---------|------------
Smith | 100
Neo | 200
Morpheus | 300
각 요원이 담당하는 총 수수료의 백분율을 계산해야합니다.
따라서 Smith 요원의 경우 백분율은 다음과 같이 계산됩니다. (Agent Smith's commission / Sum(commission)*100
그래서 내 예상 데이터는
Agent | Commission | % Commission
---------|---------------|---------------
Smith | 100 | 17
Neo | 200 | 33
Morpheus | 300 | 50
각 요원의 커미션을 반환하는 기능이 있습니다. 백분율을로 반환하는 다른 함수가 있습니다 (Commission/Sum(Commission))*100
. 문제는 Sum(commission)
각각의 모든 행에 대해 계산 되며이 쿼리가 데이터웨어 하우스에서 실행될 경우 데이터 세트는 다소 커지고 (현재는 2000 개 미만의 레코드입니다) 정직하게 나쁜 접근 방식 (IMO ).
Sum(Commission)
가져 오는 모든 행에 대해 계산하지 않는 방법이 있습니까?
2 부분 쿼리의 줄에 무언가를 생각하고 있었는데, 첫 번째 부분은 sum(commission)
패키지 변수 / 유형으로 가져오고 두 번째 부분은이 사전 계산 된 값을 참조하지만 어떻게 이것을 달성 할 수 있는지 잘 모르겠습니다.
SQL을 사용하는 것으로 제한되어 있으며 Oracle 10g R2에서 실행 중입니다.