终于解决了这个问题有以下MySQL查询:
select min(a.mydate),max(a.myhigh) as high,min(a.mylow) as low,
min(case when rn_asc = 1 then a.myopen end) as open,
min(case when rn_desc = 1 then b.myclose end) as close
from(
select
@i := if((@lastdate) != (Floor(unix_timestamp(mydate)/300)), 1, @i + 1) as rn_asc,
mydate, myhigh, mylow, myopen, myclose,
@lastdate := (Floor(unix_timestamp(mydate)/300))
from
onemindata_1,
(select @i := 0) vt1,
(select @lastdate := null) vt2 order by mydate
) a
inner join(
select
@j := if((@lastdate1) != (Floor(unix_timestamp(mydate)/300)), 1, @j + 1) as rn_desc,
mydate,myclose,
@lastdate1 := (Floor(unix_timestamp(mydate)/300))
from
onemindata_1,
(select @j := 0) vt1,
(select @lastdate1 := null) vt2 order by mydate desc
)b
on a.mydate=b.mydate
group by (Floor(unix_timestamp(a.mydate)/300))
最困难的部分是获得了“特定的时间间隔”打开和关闭。我正在做'高,低,开'的'内部连接'和'关闭'''日期'。我可以通过更改(Floor(unix_timestamp(mydate)/ 300))中的分母来切换时间间隔。目前只要它工作,不担心性能:)。
来源
2012-09-21 18:28:07
Sri
你真的有问题就在这里,或者你只是说明你已经什么做到目前为止? – Bojangles
@JamWaffles,谢谢你的关注。我没有解决问题的方法。我想要一个SQL查询将“1分钟”ohlc数据转换为“5分钟”间隔。 – Sri