如何把一个数据表中的数据按照日返回和?例如 30 天每天有很多数据,我只想得到每一天的合计!万分感谢

id store_id price created_at
1 1 20.00 2020-03-07 13:23:26
2 1 10.00 2020-03-07 13:37:39
3 1 30.00 2020-03-08 21:48:17
4 2 40.00 2020-03-08 20:43:13
5 2 40.00 2020-03-09 19:18:10
6 2 50.00 2020-03-09 17:41:11
7 2 50.00 2020-03-10 15:44:13
8 2 50.00 2020-03-19 14:41:17

如何把每一天按照price的和以数组方式返回呢?
$price = [
0=>30.00, //2020-03-07 总营业额
1=>70.00, //2020-03-08 总营业额
2=>90.00, //2020-03-09 总营业额
3=>100.00, //2020-03-10 总营业额
];
万分感谢!

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

我写了一个原生 SQL 语句,你可以根据这个来写。

select DATE_FORMAT(created_at,'%Y%m%d') day,sum(price) prices from table_name group by day; 

上述代码的意思是,首先将 created_at 字段转换成 %y%m%d 形式并取别名 day ,在对 day 进行分组,并对 price 进行合计。

这样日期与总和就解决了,再按照你的要求,自己修改一下,就能得到你想要的数据。

4年前 评论
李小明 (楼主) 4年前
李小明 (楼主) 4年前
飞机飞过天空 (作者) 4年前
讨论数量: 6
巴啦啦

路子走歪了。 这个金额,应该是确定下来就不会再动的数据。 也就是说,统计好后,可以直接写入到一条记录,讲统计的各个维度的数据写入。

4年前 评论
JimmyLzy 4年前
巴啦啦 (作者) 4年前
AloneUtopia 4年前
李小明 (楼主) 4年前

我写了一个原生 SQL 语句,你可以根据这个来写。

select DATE_FORMAT(created_at,'%Y%m%d') day,sum(price) prices from table_name group by day; 

上述代码的意思是,首先将 created_at 字段转换成 %y%m%d 形式并取别名 day ,在对 day 进行分组,并对 price 进行合计。

这样日期与总和就解决了,再按照你的要求,自己修改一下,就能得到你想要的数据。

4年前 评论
李小明 (楼主) 4年前
李小明 (楼主) 4年前
飞机飞过天空 (作者) 4年前
巴啦啦

路子走歪了。 这个金额,应该是确定下来就不会再动的数据。 也就是说,统计好后,可以直接写入到一条记录,讲统计的各个维度的数据写入。

4年前 评论
JimmyLzy 4年前
巴啦啦 (作者) 4年前
AloneUtopia 4年前
李小明 (楼主) 4年前

为什么只用sql语句 可以加上循环试试啊

4年前 评论
李小明 (楼主) 4年前
kiti (作者) 4年前
kiti (作者) 4年前

可以创建个视图

4年前 评论

楼上说得对,这种统计数据应该是单独提出来进行存储的,不然量大了以后查询很费资源。
可以写个脚本将统计结果存储,跑完了直接查询就可以。
再推荐一个 InfluxDb , 时序型的数据库,应用场景最多的就是监控数据统计,我也是最近才了解到,用来统计这种日结月结简直不要太方便嗷。

4年前 评论
李小明 (楼主) 4年前

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