2015-02-01 5 views
0

나는 내가 CASE 문는 pecent

SELECT "Agent", 
(100* (max(case when "Agent"= 'Agent1' then "TOTAL" end)/ 
max(case when "Agent" = 'TOTAL' then "TOTAL" end))) 
    as "Agent1%" 
From "SumofAgent" 
group by Agent 

쿼리를 사용하여 비율을 얻기 위해 노력하고 테이블이 표시되지 않는 경우 문을 사용하면 새 열을 빈 다음 보여줍니다. 나는 그 값이 작기 때문일 것이라고 생각하고있다. 가능한가? 이 같은

내 테이블의 모양을

Agent  TOTAL 
-----  ----- 
Agent1  13 
Agent2  21 
Agent3  49 
TOTAL  1343 

(1,343분의 13) * 내가 그들에 의한 경우 문을 시도

100 = 0.96 % 자기의 max(case when "Agent" = 'TOTAL' then "TOTAL" end)max(case when "Agent"= 'Agent1' then "TOTAL" end). 그들은 올바른 가치를 끌어오고 있지만 수학을 시도하면 아무 것도 보여주지 않습니다. 그룹 'Agent1'max(case when "Agent" = 'TOTAL' then "TOTAL" end)에서

답변

1

을 테스트하기 위해 PostgreSQL을 사용합니다하지만 조호 보고서를 사용하여

그리고 널 그룹 'TOTAL'max(case when "Agent"= 'Agent1' then "TOTAL" end) 는 null

다른 모든 그룹이 모두 가지고있는 없는.

결과적으로 결과 열의 모든 값은 모든 결과 행에서 null입니다.

How to use a SQL window function to calculate a percentage of an aggregate

:

여기 예 참조