Посчитайте события с названием 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

Отлично!