-
背景
今天在进行后台数据监控操作时
需要获取时间段内不同价格区间的商品订单量
而商品价格各个数值的都有,选用使用FLOOR()、GROUP
处理
在此,整理一下,还请指教… -
PHP 实现源码:
Db::name('xorder_goods og')
->field("FLOOR(og.order_amount/100) price,count(og.id) count")
->join("xorder_infos oi","oi.order_id = og.order_id")
->where([["pay_status","=",1]])
->group('price')
->order('price','asc')
->select();- 对应生成的
mysql
语句如下:
SELECT FLOOR(og.order_amount/100) price,count(og.id) count
FROM tp5_xorder_goods og
INNER JOIN `tp5_xorder_infos` `oi` ON `oi`.`order_id`=`og`.`order_id`
WHERE `pay_status` = 1
GROUP BY `price`
ORDER BY `price` ASC- 此时,一般需要对所得到的数据进行处理一番,以鄙人业务为例,处理方式如下:
-
$titleArr = []; //$res 为前面得到的数据 foreach ($res as $key => $value){ $price = $value['price']; if ($price > 0){ $price_range = $price."00-".intval($price+1)."00(元)"; }else{ $price_range = "0-".intval($price+1)."00(元)"; } $res[$key]['name'] = $price_range; $res[$key]['value'] = $value['count']; $titleArr[] = $price_range; }
- 得到的数据如下:
- 本人嵌入
ECHARTS
图表展示,最终效果如下:
- 得到的数据如下:
- 对应生成的
本文共 个字数,平均阅读时长 ≈ 分钟,您已阅读:0时0分0秒。
649494848