表里记录了有时间戳和对应的当年登录的玩家数量,现在希望看到一个月内每个小时,登录玩家的平均数量。
之前是写的一个脚本,写了一个循环,每次获取一个小时的平均数,放在数组里,再导出文本。后来觉得比较麻烦,最后还是写成一个sql语句,让运营自己去查询。
select DATE_FORMAT(FROM_UNIXTIME(timekey),'%Y-%m-%d %H'), AVG(onlinenum) from tb_freestyle_onlinecnt where timekey >= UNIX_TIMESTAMP('2018-12-01 00:00:00') and timekey < UNIX_TIMESTAMP('2018-12-03 00:00:00') GROUP BY DATE_FORMAT(FROM_UNIXTIME(timekey),'%Y-%m-%d %H');
就是将时间戳timekey转为'%Y-%m-%d %H'这种格式的日期,在分组求和,就可以获得查询日期内每个小时的平均玩家数量了。