需求
有打卡记录表结构如下
ID
user_id (int)
create_time (int)1
123
1603209599
现需要统计每5分钟的记录数量,按记录数量降序排列
分析
关键在于怎么把create_time按每5分钟分组,可以使用取模 % 实现
举例
现有时间戳 1 – 10 秒,每5秒分一组
首先对每秒跟5取模,结果如下
1 % 5 = 1
2 % 5 = 2
3 % 5 = 3
4 % 5 = 4
5 % 5 = 0
6 % 5 = 1
7 % 5 = 2
8 % 5 = 3
9 % 5 = 4
10 % 5 = 0
然后使用对应的秒数减去取模后的结果如下
1 – 1 % 5 # 0
2 – 2 % 5 # 0
3 – 3 % 5 # 0
4 – 4 % 5 # 0
5 – 5 % 5 # 5
6 – 6 % 5 # 5
7 – 7 % 5 # 5
8 – 8 % 5 # 5
9 – 9 % 5 # 5
10 – 10 % 5 # 10
没发现规律,那么把秒数增加到20秒
11 – 11 % 5; # 10
12 – 12 % 5; # 10
13 – 13 % 5; # 10
14 – 14 % 5; # 10
15 – 15 % 5; #