При расчете с использованием раздела показать 0 - PullRequest
0 голосов
/ 21 мая 2018

У меня проблемы с составлением специального запроса, и я был бы признателен, если бы кто-нибудь помог.

Я сделал запрос, похожий на этот:

select distinct 
    date, time, 
    case 
       when status_id = 5 and flag = 1 then 'autoprocessed' 
       when status_id = 5 and flag = 0 then 'manually processed'
       else 'other state' 
    end as "state", 
    count (distinct doc_id) over (partition by date, time, 
                                  case when status_id = 5 and flag = 1 then 1 
                                       when status_id = 5 and flag = 0 then 2 
                                       else 0 end)
from 
    journal

Теперь мои результаты выглядят так:

17.06.16 00:00:00   19  other state     2
17.06.16 00:00:00   19  autoprocessed   3
18.06.16 00:00:00   14  other state     1
20.06.16 00:00:00   14  other state     1
20.06.16 00:00:00   21  other state     2
21.06.16 00:00:00   15  other state     2
-----------------

но я бы хотел видеть их более похожими на

17.06.16 00:00:00   19  other state        2
17.06.16 00:00:00   19  autoprocessed      3
17.06.16 00:00:00   19  manually processed 0
18.06.16 00:00:00   14  other state        1
18.06.16 00:00:00   14  autoprocessed      0
18.06.16 00:00:00   14  manually processed 0
----------------

Возможно ли это?Я знаю, что регулярные подсчеты могут показывать нули даже для групп.Как насчет подсчета с разделом?

Редактировать: пример данных

date                flag staus_id
17.06.16 19:32:45   0     5
17.06.16 19:33:39   0     5
17.06.16 19:34:31   0     23
17.06.16 19:37:25   0     5
17.06.16 19:42:19   0     1
18.06.16 14:33:19   0     1
20.06.16 14:35:55   0     10
20.06.16 21:24:22   0     2
20.06.16 21:24:47   0     2
-------------------

Как вы можете видеть, в 17.06.16, 19 часов, есть 3 "автоматически обработанных" элемента (flag = 0,status_id = 5), 2 документа в «другом состоянии» (staus_id <> 5) и 0 «обработанных вручную документов» (flag = 1, status_id = 5), что дает мне первые 2 строки результатов:

17.06.16 00:00:00   19  other state     2
17.06.16 00:00:00   19  autoprocessed   3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...