mysql 怎么统计每天某个字段之和?

2019-06-21 11:55:40 +08:00
 KigKrazy

类似有一个表

字段如下:

name(销售名) b(int,类似销售金额)  time(datetime,时间戳)

需要的查询结果

name   total(销售总额,当天所以 B 字段加起来的和)   日期( yy-MM-dd )

各位有什么资料连接,或者提示的? 给个文章自己研究,目前百度下几个方案好像不是很好。

5432 次点击
所在节点    程序员
27 条回复
dyllen
2019-06-21 17:35:14 +08:00
统计这种需求,一般是定时计算,查看的都是预先计算好的数据。
如果是实时去查下统计,性能是个问题。
dyllen
2019-06-21 17:36:51 +08:00
按天,可以第二天统计前一天的数据;按周,可以每周一统计上一周的数据;按月,可以每月 1 号统计上个月的数据。这样类推。
wysnylc
2019-06-21 18:06:05 +08:00
两种方案 定时统计和新增+1,前者每天统计当前的数据总额新增到汇总表中
后者在每次新增数据会进行+1 可以实时读取
KigKrazy
2019-06-21 18:27:19 +08:00
@dyllen 嗯嗯 了解谢谢
akira
2019-06-21 19:42:15 +08:00
select xxx group by,就是个分组统计。等到你们出现性能问题的时候 再针对性处理就好
zjyl1994
2019-06-22 12:26:18 +08:00
SELECT `name`,sum(`b`) AS total,DATE_FORMAT(`time`,'yyyy-MM-dd') AS date_char FROM table GROUP BY name,datechar
可能是你想要的效果?
zjyl1994
2019-06-22 12:29:15 +08:00
我错了,按天的应该这样的
SELECT `name`,sum(`b`) AS total,DATE_FORMAT(`time`,'%Y-%m-%d') AS date_char FROM table GROUP BY name,datechar
如果周的话
SELECT `name`,sum(`b`) AS total,DATE_FORMAT(`time`,'%Y(%u)') AS date_char FROM table GROUP BY name,datechar
月的话
SELECT `name`,sum(`b`) AS total,DATE_FORMAT(`time`,'%Y-%m') AS date_char FROM table GROUP BY name,datechar

最近在做报表类的,这 sql 也是我司大佬教我的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/576143

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX