首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按日期将值的累积序列转换为非累积值

按日期将值的累积序列转换为非累积值
EN

Stack Overflow用户
提问于 2016-11-14 14:41:03
回答 1查看 65关注 0票数 0

用mysql可以得到给定的累积值的日期范围的和吗?

假设数据是这样的(不需要从周六-Day列开始的累积周,只是为了显示更改和更容易可视化):

代码语言:javascript
复制
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年3月11日到2016年11月04/ 11的结果,我希望看到:3 (18-15)从2016年11月03/11到07/11/2016:(18-15)+4+(6-4)+(8-6) =11。

或者更好地说,上表应转换为:

代码语言:javascript
复制
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或其他语言中,我只需使用(伪代码):

代码语言:javascript
复制
If (day != Saturday) {value = currentvalue-yesterdayvalue} else {value = currentvalue)

理想情况下,我想从mysql中派生出这个

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-14 14:56:09

代码语言:javascript
复制
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;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40591331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档