Дякую за відповіді.

lucas-kane написав:

Так вас цікавлять «періоди» чи «діапазони»?

Зараз спробую пояснити інакше. Довільний діапазон (проміжок) заданої тривалості у всьому часовому просторі даних, для якого кількість записів буде найбільшою. Завдання в першу чергу визначити сам такий діапазон.

Це таблиця з логами запитів різного типу. Є id користувача, тип і час запиту. Треба визначити максимальну кількість запитів 'download' від одного користувача (будь-якого) за вказаний проміжок (тривалість) часу (доба, година, 10 секунд, тощо).

Але не ділити час на періоди. Бо необхідна пікова кількість запитів, що надходила за певний проміжок часу (вона може бути більшою, ніж кількість запитів за той же час, поділений на періоди).

В принципі, для простоти request_type та account_id мабуть можна і видкинути. Лишається request_timestamp (для простоти скорочу його значення):
1
2
2
2
3
4
4
5
6
6
6
6
6
10

Хай потрібний проміжок буде 5 секунд. Якщо ділити на періоди (так легко, но це не те що потрібно) отримаємо максимум у 8 (період від 1 до 5). Але якщо рахувати як треба - довільний проміжок у 5 секунд, то це будуть записи із значеннями від 2 до 6 включно - 12 рядків. Ось що мені потрібно.

Вітаю!

Є колонки:
request_timestamp - int
request_type - enum
account_id - int

Мені необхідно вибрати максимальну кількість записів для одного (довільного) account_id, у котрих request_type='download' і request_timestamp лежить у вказаному періоді (у добі, наприклад).

Тільки під добою це не просто від 00 до 24. Мається на увазі що мінімальний і максимальний request_timestamp рядків такої вибірки будуть у межах вказаного періоду.