Сумма неповторяющихся клиентских ценностей до даты - PullRequest
0 голосов
/ 02 июня 2018

У меня есть список, состоящий из даты и всех статусов клиентов для каждой даты (одно поле для активного и другое для неактивного) Как я могу получить счетчик за флаг неповторяющихся клиентов до определенной календарной даты?

calendar_date   customer_uid    active_flag     inactive_flag
2016-09-10          500             1               0
2016-09-10          501             0               0
2016-09-10          509             1               0
2016-09-11          509             1               0
2016-09-11          500             1               0
2016-09-11          501             0               0
2016-09-12          500             1               0
2016-09-12          501             1               0
2016-09-12          509             1               0
2016-09-13          500             0               1
2016-09-13          501             1               0
2016-09-13          509             1               0
2016-09-14          500             0               1
2016-09-14          501             1               0
2016-09-14          509             0               1

Результат будет таким:

calendar_date   active_flag     inactive_flag
2016-09-10          2               0
2016-09-11          2               0
2016-09-12          3               0
2016-09-13          2               1
2016-09-14          1               2

1 Ответ

0 голосов
/ 02 июня 2018

Вам необходимо использовать функцию SUM и GROUP BY

SELECT calendar_date,SUM(active_flag) active_flag,SUM(inactive_flag) inactive_flag 
FROM T
GROUP BY calendar_date

Если active_flag и inactive_flag состояния больше двух

, вы можете использовать выражение case whenс агрегатной функцией.

SELECT calendar_date,
       COUNT(CASE WHEN active_flag = 1 THEN 1 END) active_flag,
       COUNT(CASE WHEN inactive_flag = 1 THEN 1 END) inactive_flag 
FROM T
GROUP BY calendar_date
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...