【问题标题】:SQL get change in values based on consecutive dates, grouped by a valueSQL根据连续日期获取值的变化,按值分组
【发布时间】:2012-05-12 12:25:23
【问题描述】:

我想获得每天的价格变化。什么 SQL 查询将完成此操作?

原表

Date       Company    Price
---------------------------
1/4/2012   Apple      458
1/3/2012   Apple      462
1/2/2012   Apple      451
1/1/2012   Apple      450

1/4/2012   Google     553
1/3/2012   Google     541
1/2/2012   Google     535
1/1/2012   Google     531

想要的表

Date       Company    Price   Day_Change
-------------------------------------
1/4/2012   Apple      458     -4    
1/3/2012   Apple      462     9
1/2/2012   Apple      451     1
1/1/2012   Apple      450     NULL

1/4/2012   Google     553     13
1/3/2012   Google     541     6
1/2/2012   Google     535     4
1/1/2012   Google     531     NULL

【问题讨论】:

  • 如果缺少一个日期,你想要NULL还是想要基于前一个日期的差值?

标签: mysql sql join


【解决方案1】:

加入前一天自己和公司的表

SELECT t1.price-t2.price FROM
Table t1
INNER JOIN Table t2 on date_add(t1.date,INTERVAL 1 DAY) =t2.date  
       AND t1.company=t2.company

【讨论】:

    猜你喜欢
    • 2012-05-12
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多