日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

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

發(fā)布時(shí)間:2023/12/20 数据库 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 by mysql 按每分钟group_MySQL group by 统计每5分钟数据量 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

需求

有打卡記錄表結(jié)構(gòu)如下

ID

user_id (int)

create_time (int)1

123

1603209599

現(xiàn)需要統(tǒng)計(jì)每5分鐘的記錄數(shù)量,按記錄數(shù)量降序排列

分析

關(guān)鍵在于怎么把create_time按每5分鐘分組,可以使用取模 % 實(shí)現(xiàn)

舉例

現(xiàn)有時(shí)間戳 1 - 10 秒,每5秒分一組

首先對(duì)每秒跟5取模,結(jié)果如下

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

然后使用對(duì)應(yīng)的秒數(shù)減去取模后的結(jié)果如下

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

沒(méi)發(fā)現(xiàn)規(guī)律,那么把秒數(shù)增加到20秒

11 - 11 % 5; # 10

12 - 12 % 5; # 10

13 - 13 % 5; # 10

14 - 14 % 5; # 10

15 - 15 % 5; # 15

16 - 16 % 5; # 15

17 - 17 % 5; # 15

18 - 18 % 5; # 15

19 - 19 % 5; # 15

20 - 20 % 5; # 20

改寫(xiě)下公式

concat(create_time - create_time % 5, '~', create_time - create_time % 5 + 5)

最終計(jì)算的結(jié)果結(jié)果如下

SELECT 1 - 1 % 5; # 0 (0 ~ 5)

SELECT 2 - 2 % 5; # 0 (0 ~ 5)

SELECT 3 - 3 % 5; # 0 (0 ~ 5)

SELECT 4 - 4 % 5; # 0 (0 ~ 5)

SELECT 5 - 5 % 5; # 5 (5 ~ 10)

SELECT 6 - 6 % 5; # 5 (5 ~ 10)

SELECT 7 - 7 % 5; # 5 (5 ~ 10)

SELECT 8 - 8 % 5; # 5 (5 ~ 10)

SELECT 9 - 9 % 5; # 5 (5 ~ 10)

SELECT 10 - 10 % 5; # 10 (10 ~ 15)

SELECT 11 - 11 % 5; # 10 (10 ~ 15)

SELECT 12 - 12 % 5; # 10 (10 ~ 15)

SELECT 13 - 13 % 5; # 10 (10 ~ 15)

SELECT 14 - 14 % 5; # 10 (10 ~ 15)

SELECT 15 - 15 % 5; # 15 (15 ~ 20)

SELECT 16 - 16 % 5; # 15 (15 ~ 20)

SELECT 17 - 17 % 5; # 15 (15 ~ 20)

SELECT 18 - 18 % 5; # 15 (15 ~ 20)

SELECT 19 - 19 % 5; # 15 (15 ~ 20)

SELECT 20 - 20 % 5; # 20 (20 ~ 25)

如此便能實(shí)現(xiàn)每5秒分到一組,要實(shí)現(xiàn)需求的每5分鐘分組,只需要把5改成300,最終的SQL如下

select

concat(from_unixtime(create_time - create_time % 300), ' ~ ', from_unixtime(create_time - create_time % 300 + 300)) as period,

count(1) as record_count

from 打卡日志表

WHERE create_time BETWEEN 1603123200 and 1603209599

group by period

order by record_count DESC;

總結(jié)

以上是生活随笔為你收集整理的by mysql 按每分钟group_MySQL group by 统计每5分钟数据量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。