是否可以使用mysql获取累积值的给定日期范围的总和?
假设数据是这样的(周六开始的累积周数 - 不需要日期列,只是显示更改并更容易可视化):
Date Day Value
03/11/2016 Thursday 15
04/11/2016 Friday 18
05/11/2016 Saturday 4
06/11/2016 Sunday 6
07/11/2016 Monday 8
08/11/2016 Tuesday 10
09/11/2016 Wednesday 13
10/11/2016 Thursday 17
11/11/2016 Friday 18
12/11/2016 Saturday 2
13/11/2016 Sunday 4
14/11/2016 Monday 6
and so on...
所以例如如果我要求从2016年11月3日到2016年11月4日的结果,我希望看到:3(18-15) 2016年3月3日至2016年11月7日:(18-15)+4 +(6-4)+(8-6)= 11
或者说上面的表格应该转换为:
Date Day Value
03/11/2016 Thursday -
04/11/2016 Friday 3
05/11/2016 Saturday 4
06/11/2016 Sunday 2
07/11/2016 Monday 2
08/11/2016 Tuesday 2
09/11/2016 Wednesday 3
10/11/2016 Thursday 4
11/11/2016 Friday 1
12/11/2016 Saturday 2
13/11/2016 Sunday 2
14/11/2016 Monday 2
在php或其他语言中我会像(伪代码):
If (day != Saturday) {value = currentvalue-yesterdayvalue} else {value = currentvalue)
理想情况下,我想在mysql
中派生出这个答案 0 :(得分:2)
SELECT x.*
, CASE WHEN WEEKDAY(x.date) = 5
THEN x.value
ELSE x.value-y.value END x
FROM my_table x
LEFT
JOIN my_table y
ON y.date = x.date - INTERVAL 1 DAY;