У меня есть таблица с несколькими миллионами записей.Я хочу узнать, когда максимальное количество записей, которые происходят в течение данной минуты в течение года (2018).
Моя первоначальная стратегия состояла в том, чтобы выяснить, в каком месяце было наибольшее количество записей.Например:
- Месяц
SELECT date_part('month', create_time), count(*)
FROM mydb.mytable
WHERE date_part('year', create_time) = 2018
GROUP BY date_part('month', create_time)
Это даст мне максимальный месяц в течение года.Я бы продолжил с днем, часом месяца и в конечном итоге получил бы, например:
- Минута
SELECT date_part('minute', create_time), count(*)
FROM mydb.mytable
WHERE date_part('year', create_time) = 2018
AND date_part('month', create_time) = 6
AND date_part('day', create_time) = 19
AND date_part('hour', create_time) = 11
GROUP BY date_part('minute', create_time)
ORDER BY count DESC
При этой стратегии я обнаружил, что максимальное количество записей в минуту будет, например,250.
Однако это оказалось неверной стратегией.
По стечению обстоятельств я обнаружил, что один из месяцев, в котором было значительно меньше записей в месяц, на самом деле имел более высокую скорость входа в минутунапример, 700.
Итак, вопрос в том, как мне найти максимальное количество записей в минуту в течение года, не прибегая к "поиску" моего пути?