在一段时间内在mysql中创建滚动总和
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在一段时间内在mysql中创建滚动总和,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1636字,纯文字阅读大概需要3分钟。
内容图文
![在一段时间内在mysql中创建滚动总和](/upload/InfoBanner/zyjiaocheng/887/bbfc3e65622e4bb3bfea9da0a180ca2d.jpg)
我有一个表,其中包含date和time_spent列.我想为每个日期D查找一段时间内“ time_spent”值的总和:(D-7-D),即.过去一周的当前日期.
我找不到解决办法,因为我只能找到一个总和的示例,而不是一个可变时间段内的总和.
这是一个数据集示例:
CREATE TABLE rolling_total
(
date date,
time_spent int
);
INSERT INTO rolling_total VALUES ('2013-09-01','2'),
('2013-09-02','1'),
('2013-09-03','3'),
('2013-09-04','4'),
('2013-09-05','2'),
('2013-09-06','5'),
('2013-09-07','3'),
('2013-09-08','2'),
('2013-09-09','1'),
('2013-09-10','1'),
('2013-09-11','1'),
('2013-09-12','3'),
('2013-09-13','2'),
('2013-09-14','4'),
('2013-09-15','6'),
('2013-09-16','1'),
('2013-09-17','2'),
('2013-09-18','3'),
('2013-09-19','4'),
('2013-09-20','1'),
('2013-09-21','6'),
('2013-09-22','5'),
('2013-09-23','3'),
('2013-09-24','1'),
('2013-09-25','5'),
('2013-09-26','2'),
('2013-09-27','1'),
('2013-09-28','4'),
('2013-09-29','3'),
('2013-09-30','2')
结果看起来像:
date | time_spent | rolling_week_total
2013-09-01 | 2 | 2
2013-09-02 | 1 | 3
2013-09-03 | 3 | 6
2013-09-04 | 4 | 10
2013-09-05 | 2 | 12
2013-09-06 | 5 | 17
2013-09-07 | 3 | 20
2013-09-08 | 2 | 22
// now we omit values that are older than seven days
2013-09-09 | 1 | 21
2013-09-10 | 1 | 21
...
解决方法:
还有一个解决方案
SELECT r1.date, r1.time_spent, sum(r2.time_spent) AS rolling_week_total
FROM rolling_total AS r1 JOIN rolling_total AS r2
ON datediff(r1.date, r2.date) BETWEEN 0 AND 7
GROUP BY r1.date
ORDER BY r1.date
LIMIT 8
内容总结
以上是互联网集市为您收集整理的在一段时间内在mysql中创建滚动总和全部内容,希望文章能够帮你解决在一段时间内在mysql中创建滚动总和所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。