MySQL ограничение количества записей, сгруппированных во временном диапазоне - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть представление, которое используется для создания отчетов каждые несколько часов. Представление группирует записи в 5-минутные интервалы для целей отображения. Из-за объема данных я хочу ограничить количество записей в каждом 5-минутном интервале.

Для отчета, основанного на более чем часе, будет 12 групп, и я хочу ограничить данные в каждой группе только 100 записями на группу.

Я пытался использовать HAVING с подсчетом на временном интервале, но это не ограничивало общее количество на группу

Каков наилучший способ приблизиться к этому

Мой взгляд

SELECT 
    FROM_UNIXTIME((FLOOR((UNIX_TIMESTAMP(`r`.`created_at`) / 300)) * 300)) AS `time`,
    `u`.`picture_url` ,
    `u`.`username`,
    `rc`.`desc` ,
    `r`.`report_uid` 
FROM
    `records` `r`
    JOIN `record_content` `rc` ON `rc`.`record_id` = `r`.`id`
    JOIN `users` `u` ON `r`.`id` = `u`.`author_id`

GROUP BY `time` , `r`.`report_uid` , `u`.`picture_url` , `u`.`username` , `rc`.`desc` 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...