【发布时间】:2016-04-22 09:38:06
【问题描述】:
我有下表
+-----------+-------+-------+
| Date | Type | Value |
+-----------+-------+-------+
| 1/1/2013 | A | 1 |
| 1/2/2013 | A | 3 |
| 1/3/2013 | A | 5 |
| 1/4/2013 | A | 6 |
| 1/6/2013 | A | 8 |
| 1/7/2013 | A | 1 |
| 1/8/2013 | A | 2 |
+-----------+-------+-------+
我想对某一天前 3 个日期的值求和,所以我使用了这个查询。 即:sel_date = 2013 年 1 月 3 日。
select type, sum(value)
from table_name
where date <= seldate
and date > seldate - 3
group by type
现在的问题是,我想输出一个给定日期范围的表格,计算每个日期的前 3 天。
即:sel_date 范围 1/3/2013 - 1/8/2013
+-----------+-------+------------+
| Date | Type | Sum(Value) |
+-----------+-------+------------+
| 1/3/2013 | A | 9 | // 5 + 3 + 1
| 1/4/2013 | A | 14 | // 6 + 5 + 3
| 1/5/2013 | A | 11 | // 0 + 6 + 5
| 1/6/2013 | A | 14 | // 8 + 0 + 6
| 1/7/2013 | A | 9 | // 1 + 8 + 0
| 1/8/2013 | A | 11 | // 2 + 1 + 8
+-----------+-------+------------+
有没有办法在单个查询中做到这一点。我尝试阅读有关分区的内容,但它让我无处可去。
【问题讨论】:
-
添加了跳过日期的测试用例