У меня есть таблица, в которой есть клиенты, и я хочу узнать, в каком месяце клиент встретил или превысил определенное количество запросов.
В таблице customer_id есть отметка времени каждого запроса.
Я ищу месяц (или день), когда клиент встретил или превысил 10000 запросов. Я пытался получить промежуточный итог на месте, но это просто не работает для меня. Я оставил это в коде на случай, если кто-то знает, как я могу это сделать.
У меня есть следующее:
SELECT
customer_id
, DATE_TRUNC(CAST(TIMESTAMP_MILLIS(created_timestamp) AS DATE), MONTH) as cMonth
, COUNT(created_timestamp) as searchCount
-- , SUM(COUNT (DISTINCT(created_timestamp))) OVER (ROWS UNBOUNDED PRECEDING) as RunningTotal2
FROM customer_requests.history.all
GROUP BY distributor_id, cMonth
ORDER BY 2 ASC, 1 DESC;
Представление, за которым я следую, выглядит примерно так.
customer requests cMonth totalRequests
cust1 6000 2017-10-01 6000
cust1 4001 2017-11-01 10001
cust2 4000 2017-10-01 4000
cust2 4000 2017-11-01 8000
cust2 4000 2017-12-01 12000
cust2 3000 2017-12-01 3000
cust2 3000 2017-12-01 6000
cust2 3000 2017-12-01 9000
cust2 3000 2017-12-01 12000