by mysql 按每分钟group_MySQL group by 统计每5分钟数据量

  • Post author:
  • Post category:mysql


需求

有打卡记录表结构如下

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; #



版权声明:本文为weixin_39695672原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。