Использование оператора CASE, не отображающего проценты

У меня есть таблица, в которой я пытаюсь получить процент, используя оператор CASE.

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

(13/1343)*100=0.96%

Я пробовал операторы case от них самих max(case when "Agent" = 'TOTAL' then "TOTAL" end) и max(case when "Agent"= 'Agent1' then "TOTAL" end). Они вытягивают правильные значения, но когда вы пытаетесь сделать математику, это ничего не показывает.

Использование отчетов Zoho, но для тестирования будет использоваться PostgreSQL


person coco minion    schedule 01.02.2015    source источник


Ответы (1)


В группе "Агент1" max(case when "Agent" = 'TOTAL' then "TOTAL" end) равно null

А в группе "ИТОГО" max(case when "Agent"= 'Agent1' then "TOTAL" end) равно null

Все остальные группы имеют оба нуля.

В результате каждое значение в столбце результатов равно нулю во всех строках результатов.

см. пример здесь:

Как использовать Оконная функция SQL для вычисления процента агрегата

person Jasen    schedule 01.02.2015