为了账号安全,请及时绑定邮箱和手机立即绑定

php+mysql 按不同时间粒度统计数据

php+mysql 按不同时间粒度统计数据

PHP
德玛西亚99 2019-03-14 13:11:11
在做一个可视化数据的接口,可视化图表的需求是:可以按照不同的粒度(即天\小时\半小时)去分组统计数据. 举个粒度为天的例子: 人流数据表: id name time 1 ces 2017-12-20 10:10:00 2 xiaoming 2017-12-20 09:10:00 3 lisi 2017-12-19 02:10:00 4 zhangsan 2017-12-17 00:10:00 想要统计出 count date 2 2017-12-20 1 2017-12-19 0 2017-12-18 1 2017-12-17 这样的结果,也就是按日期去分组统计人流量。 个人的尝试: 1、有想到用 group by DATE_FORMAT( time, "%Y-%m-%d" ) 去对日期分组,可是上面的2017-12-18这一天的人流是0,也就是在人流表里没有记录,是不会统计出来的,只会统计有人流记录的日期,而且当粒度小于一个小时,比如30分钟和15分钟的时候,这个mysql语句应该怎么改? 2、网上有人说用一个日期常量表关联查询,可是那也只是在日期的粒度查询的呀,如果有多个粒度的话就要去准备多个常量表?请教大神这种情况应该怎么处理最好?
查看完整描述

4 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

类似这种效果?
https://img1.sycdn.imooc.com//5c8f58d400011c7608000313.jpg

查看完整回答
反对 回复 2019-03-18
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

前端在可视化数据展示输出的时候对没有的天数进行补0不就好了么。

查看完整回答
反对 回复 2019-03-18
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

你可以转化成时间戳进行计算

查看完整回答
反对 回复 2019-03-18
?
不负相思意

TA贡献1777条经验 获得超10个赞

可视化图表基本都是每隔一定时间去数据库里读取一次数据,然后存储到一个单独的表里的吧?不应该做成每次看表都要实时生成的!定时读取数据存储到表里,读取的时候直接根据这个表生成线性趋势就可以了,很简单吧!
否则,后端直接生成曲线数据那你就造常量表吧,太多这种需求要都这么干法,烦!

查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 633 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信