Посчитайте события с названием view_item по месяцам с накоплением.
Рассчитайте количество событий только для тех пользователей, которые совершили хотя бы одну покупку.
Выгрузите поля:
- месяц события, приведённый к типу date;
- количество событий за текущий месяц;
- количество событий за текущий месяц с накоплением.
SELECT *,
SUM(dc.count) OVER (ORDER BY dc.date)
FROM (SELECT CAST(DATE_TRUNC('month', event_time) AS date) AS date,
COUNT(event_name)
FROM tools_shop.events
WHERE event_name = 'view_item'
AND user_id IN (SELECT user_id
FROM tools_shop.orders
WHERE paid_at IS NOT NULL)
GROUP BY date
ORDER BY date) AS dc;
Результат
| date | count | sum |
|---|---|---|
| 2016-03-01 | 10 | 10 |
| 2016-04-01 | 23 | 33 |
| 2016-05-01 | 84 | 117 |
Отлично!