Подсчет регистраций разных типов пользователей в день - PullRequest
0 голосов
/ 04 ноября 2018

Моя таблица выглядит примерно так:

|  date_of_register | account_type1  |  account_type2  |
| 18/11/02 23:56:59 |    type_a      |      type_b     |

Я хочу посчитать регистрации разных типов пользователей в день. account_type1 может быть type_a или null, account_type2 может быть type_b или null.

результат должен выглядеть на примере одного дня следующим образом:

DATE      |  registers type_a  | registers type_b|
18/11/02  |           32       |          21     |

Но я хочу сделать это в течение двух месяцев.

Я не уверен, как считать записи из разных столбцов и получать такой результат. Является ли это возможным?

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Вы хотите подсчитывать вхождения в день. День - это усеченная дата. Таким образом, совокупность по TRUNC(<datecolumn>). Подсчет прост, так как вы просто хотите считать ненулевые вхождения, для которых COUNT(<column>) предназначен.

select
  trunc(date_of_register),
  count(account_type1) as registers_type_a,
  count(account_type2) as registers_type_b
from mytable
group by trunc(date_of_register)
order by trunc(date_of_register);
0 голосов
/ 04 ноября 2018

Вы можете сделать:

SELECT 
TRUNC(date_of_register), 
COUNT(CASE WHEN account_type1 = 'type_a' THEN 1 ELSE 0 END) AS "registers type_a",
COUNT(CASE WHEN account_type2 = 'type_b' THEN 1 ELSE 0 END) AS "registers type_b"
FROM registrations_table 
GROUP BY TRUNC(date_of_register)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...