(求助)查询价格曲线趋势替换空值

查询最近一周成交数据,返回给前端填充价格趋势曲线。可能出现某天无数据,需要填充前一天的数据,如果是第一天就没有,查询前一天的数据,直到有数据,填充七天。各位可否给个思路。
    $key = 1;
    $start_time = strtotime("-$key day"); //开始时间
    $end_time = time(); //结束时间
    $M = M('db_match'); //撮合表
     //价格趋势
     $sql = "SELECT IFNULL(FROM_UNIXTIME(add_time,'%Y-%m-%d'),FROM_UNIXTIME({$end_time},'%Y-%m-%d')) AS date,IFNULL(AVG(buy_Price),0) AS price FROM db_match WHERE status=3 AND add_time BETWEEN {$start_time} AND {$end_time}";
     $list = M()->query($sql);//一周数据
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

PHP构造日期数组,不要用sql构造,太笨了,循环一遍,把没有的日期补0就好了,简单粗暴有效
另外可以做统计表,结果肯定是计划任务跑出来。。。实时性就比较低

4年前 评论
讨论数量: 6

这种统计相关的需求,一般会做一个统计表,每天的统计数据是一行

4年前 评论
Jourdon

正好最近在做统计 直接上 sql 吧,不知道大神们有没有更好的办法

此处 SQL 已删

似乎直接给 sql会被人鄙视,
我目前的需求,一张表完全不够。几十个字段放一个表根本不现实,
所以是统计表加 SQL 查,两者结合的。

4年前 评论
JerryBool 4年前
Jourdon (作者) 4年前
JerryBool 4年前
Jourdon (作者) 4年前
YYzc 4年前

1.做一张统计表 把每天 每日成交金额写入表中
2.如果查询最近7天的 则倒序取7条 成交金额大于0的即可

4年前 评论
984054610

先说我的思路哈:先查询这一周的数据(按天标识),比如查询到数据1-5天有,6天没有,7天有,做数据处理的时候把第5天赋值到第6天上面去;如果第一天没有数据,如果知道第一天的时间,按照时间排序取小于这一天的第一条数据,就可以把第一天的差的数据查出。

4年前 评论

PHP构造日期数组,不要用sql构造,太笨了,循环一遍,把没有的日期补0就好了,简单粗暴有效
另外可以做统计表,结果肯定是计划任务跑出来。。。实时性就比较低

4年前 评论
xianyunyehe

不用sql去补充,开始时间和结束时间去遍历 然后把空的数据补充进去

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!