0

首先,很抱歉没有这么清楚。

假设我有一张表格,每 5 分钟收集一次特定的纳斯达克股票价值。现在,我想断言每周一上午 9:00 的股票值得投资。如何创建一个 SQL 语句,该语句将查看每个星期一上午 9 点及以后(例如,接下来的 6 小时)的数据,并在 6 小时后,即同一个星期一的 15:00 返回值的变化,以便我可以检查我的评估是对或错 ?

基本上 SQL 会返回如下内容:

 
日期 上午 9 点的值 下午 15 点的值 2013 年 9 月
16 日 90 美元 92
美元 2013 年 9 月 85 美元 88 美元2013 年
9 月 2 日 87 美元 91 美元

......

4

1 回答 1

0

这是一种使用相关子查询来获取这些时间值的方法。事实上,它会在同一日期获得该时间之后记录的第一个值:

select date(s.valuetime) as thedate,
       (select value
        from stocks s2
        where date(s.valuetime) = date(s2.valuetime) and
              hour(s.valuetime) >= 9 and
              s2.stock = s.stock
        order by s2.valuetime
        limit 1
       ) as `Value at 9am`,
       (select value
        from stocks s2
        where date(s.valuetime) = date(s2.valuetime) and
              hour(s.valuetime) >= 15 and
              s2.stock = s.stock
        order by s2.valuetime
        limit 1
       ) as `Value at 3pm`
from stocks s
group by date(s.valuetime) and dayofweek(s.valuetime) = 2;
于 2013-09-15T13:34:02.357 回答