SQL: подсчет различных шагов, которые происходят в разное время в процессе и группе по клиенту и дате - PullRequest
0 голосов
/ 19 сентября 2018

Проблема Для целей отчетности я создаю представление, которое возвращает агрегированные данные.У нас есть несколько клиентов, которые имеют несколько случаев в нашей базе данных.У дела будут разные статусы, в зависимости от фазы процесса, в котором он находится. Метки времени наиболее важных переходов в процессе регистрируются на уровне дела в разных столбцах.

Эторезультат мне нужен: дата |клиент |count_new_case |count_step1_case |count_step2_case |count_completed_case

Данные выглядят так: case_id |клиент |timstamp_created |timestamp_step1 |timestamp_step2 |timestamp_completed

1 Ответ

0 голосов
/ 19 сентября 2018

GROUP BY client и считать только случаи типа, использующего CASE.Это может выглядеть примерно так:

SELECT current_date date,
       client,
       count(CASE
               WHEN timestamp_step1 IS NULL THEN
                 1
             END) count_new_case,
       count(CASE
               WHEN timestamp_step1 IS NOT NULL
                    AND timestamp_step2 IS NULL THEN
                 1
             END) count_step1_case,
       count(CASE
               WHEN timestamp_step2 IS NOT NULL
                    AND timestamp_completed IS NULL THEN
                 1
             END) count_step2_case,
       count(CASE
               WHEN timestamp_completed IS NOT NULL THEN
                 1
             END) count_completed_case
       FROM elbat
       GROUP BY client;

Вы не указали точную логику, когда дело квалифицируется как новое, шаг 1 и т. Д., Поэтому мне пришлось угадать здесь.Возможно, вы захотите адаптировать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...