MySQL实战基础知识入门(11):简单高效的筛选最近7日每天数据统计的方式解决echarts每日交易量柱图

  1. 见:《MySQL实战基础知识入门(10):今天、昨天、近7天、近30天在一个筛选语句内实现的解决方案》
    上文是时间段的数据合计统计;
  2. 见《MySQL实战基础知识入门(3):近7日销量合计php后端mysql语句如果当日为空则自动补0的解决方案》
    上文是最近七日每日的分别统计。

如果只是为了7天,写那么字段也就算了。但是遇见了统计30天内每天的数据时,是不是哭了呢?

新的MYSQL筛选语句:

        $sql = "select DATE_FORMAT(a.paid_at,'%Y-%m-%d') as dataKey,ifnull(COUNT(a.id),0) AS totalTrans,ifnull(SUM(a.should_paid),0) AS totalPays,b.uniacid,b.dpopen from " . $db->table('orders') . " AS a, " . $db->table('set_basic') . " AS b WHERE a.paid_at <> '' AND a.uniacid = b.uniacid";
        $sql .= " GROUP BY DATE_FORMAT(a.paid_at,'%Y-%m-%d') ORDER BY a.paid_at DESC LIMIT 7";
        $row = $db->queryall($sql);
        $res["data"] = $row;
        die(json_encode_lockdata($res));

解析:
一、按照每日的日期作为分组的依据进行SUM统计;

DATE_FORMAT(a.paid_at,'%Y-%m-%d') as dataKey

二、限制显示数量

ORDER BY a.paid_at DESC LIMIT 7

三、调整显示方式
由于是按照时间降序排列,在echarts使用过程中,X轴需要加入反转参数

 inverse: true,

Done!

你可能感兴趣的:(mysql)