首页 > 解决方案 > MySQL限制时间范围内分组的记录数

问题描述

我有一个用于每隔几个小时生成报告的视图。视图将记录分组为 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` 

标签: mysqlsqlgroup-by

解决方案


推荐阅读