还是昨天的问题 由于没说清楚 今天贴出数据供大家测试

nianzhang747 2010-12-15 09:46:35
/*
SQLyog Enterprise Trial - MySQL GUI v8.14
MySQL - 5.1.34-community-log
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;

create table `aikidofxtick_t` (
`Symbol` varchar (48),
`StartTime` float ,
`OpenPrx` float ,
`HighPrx` float ,
`LowPrx` float ,
`LastPrx` float
);
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.29059e+012','81.226','81.271','81.211','81.247');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.29059e+012','81.249','81.264','81.208','81.244');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.29059e+012','81.247','81.278','81.224','81.263');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.29059e+012','81.267','81.282','81.23','81.245');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.29059e+012','81.247','81.285','81.232','81.27');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.4955','81.513','81.437','81.4545');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.4545','81.488','81.437','81.4625');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.4535','81.48','81.43','81.4495');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.4545','81.478','81.419','81.4365');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.445','81.47','81.41','81.45');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.4575','81.531','81.441','81.5135');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.5125','81.551','81.492','81.5335');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.532','81.547','81.485','81.5085');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.5125','81.553','81.495','81.5335');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.5435','81.561','81.507','81.532');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.54','81.555','81.499','81.5175');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.524','81.542','81.494','81.519');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.519','81.534','81.484','81.509');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.508','81.544','81.493','81.5145');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.5115','81.529','81.469','81.509');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.5095','81.532','81.472','81.4965');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.5015','81.536','81.48','81.502');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.5255','81.567','81.504','81.5485');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.545','81.561','81.486','81.507');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.4935','81.518','81.459','81.4805');
insert into `aikidofxtick_t` (`Symbol`, `StartTime`, `OpenPrx`, `HighPrx`, `LowPrx`, `LastPrx`) values('AUD_JPY','1.2906e+012','81.4785','81.496','81.429','81.4465');
...全文
188 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
fxs_2008 2010-12-16
  • 打赏
  • 举报
回复
up一下了。我觉得分钟线,五分钟线,5的倍数,都是分表存比较好。
nianzhang747 2010-12-15
  • 打赏
  • 举报
回复
mysql> SELECT COUNT(*) FROM aikidofxtick_t;;
+----------+
| COUNT(*) |
+----------+
| 412877 |
+----------+
1 row in set (0.00 sec)


因为里面的数据量很大 所以需要 对子查询进行优化
版主 你的sql语句能不能优化啊、
nianzhang747 2010-12-15
  • 打赏
  • 举报
回复
CREATE TABLE `aikidofxtick_t` (
`Symbol` varchar(16) NOT NULL,
`StartTime` float NOT NULL,
`OpenPrx` float NOT NULL,
`HighPrx` float NOT NULL,
`LowPrx` float NOT NULL,
`LastPrx` float NOT NULL,
KEY `AikidoFxTickIndex1` (`Symbol`),
KEY `AikidoFxTickIndex2` (`StartTime`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
王向飞 2010-12-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 nianzhang747 的回复:]

OpenPrx 开盘价(该段时间内最初的价格)
HighPrx 最高价 (该段时间内最高的价格)
LowPrx 最低价(该段时间内最低的价格)
LastPrx 收盘价 (该段时间内最后的价格)

比如区间取60min
12:10 价格是 85.23
12:45 价格是 86.52
12.56 价格是 86.52
则开盘价是……
[/Quote]
楼主你这算法想想有问题吗? 要是这一分钟没有成交量?那你价格就应该是上一区间内的,这个算法很复杂,你还是别来这里问了。
ACMAIN_CHM 2010-12-15
  • 打赏
  • 举报
回复
能按下面的方法提供你的测试用例吗?


建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html

1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
nianzhang747 2010-12-15
  • 打赏
  • 举报
回复
如果拿出来查的话1秒 但是放在一起查究18秒?为啥啊
nianzhang747 2010-12-15
  • 打赏
  • 举报
回复
版主的方法是好 但是将
(select OpenPrx from aikidofxtick_t
where FROM_UNIXTIME(StartTime/1000-(StartTime/1000)%(60*60))=FROM_UNIXTIME(a.StartTime/1000-(a.StartTime/1000)%(60*60))
order by StartTime limit 1) as OpenPrx,

子查询放在select 语句里 好像查不出来,查的时候太卡了 效率低
ACMAIN_CHM 2010-12-15
  • 打赏
  • 举报
回复
至于其它时间的你可以把 FROM_UNIXTIME(StartTime/1000-(StartTime/1000)%(60*60))中的(60*60)修改成你所对应的时间间隔 60*60秒 = 3600秒 =1小时 。
ACMAIN_CHM 2010-12-15
  • 打赏
  • 举报
回复
60 分钟的你可以用下面语句。 由于你提供的数据无法进行测试,所以无法验证。


select Symbol,FROM_UNIXTIME(StartTime/1000-(StartTime/1000)%(60*60)) As StartTime,
(select OpenPrx from aikidofxtick_t
where FROM_UNIXTIME(StartTime/1000-(StartTime/1000)%(60*60))=FROM_UNIXTIME(a.StartTime/1000-(a.StartTime/1000)%(60*60))
order by StartTime limit 1) as OpenPrx,
Max(HighPrx) As HighPrx,
min(LowPrx) as LowPrx,
(select LastPrx from aikidofxtick_t
where FROM_UNIXTIME(StartTime/1000-(StartTime/1000)%(60*60))=FROM_UNIXTIME(a.StartTime/1000-(a.StartTime/1000)%(60*60))
order by StartTime desc limit 1) as LastPrx
from aikidofxtick_t a
Group by FROM_UNIXTIME(StartTime/1000-(StartTime/1000)%(60*60))
jiahehao 2010-12-15
  • 打赏
  • 举报
回复
楼主有炒股的内幕消息没~~~~拿来分享一下下~~~~
ACMAIN_CHM 2010-12-15
  • 打赏
  • 举报
回复
[Quote]没关系 数据太多 贴不上来 2010-11-24的 那就算那一天的吧[/Quote]你的时间都是相同的无法区别先后。
'1.29059e+012'
'1.29059e+012'
'1.29059e+012'
'1.29059e+012'
'1.29059e+012'
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',
'1.2906e+012',


楼主你最好自己先测试一下,然后基于这套数据写出你的结果。
WWWWA 2010-12-15
  • 打赏
  • 举报
回复
基于你提供的数据,要求结果贴出来
nianzhang747 2010-12-15
  • 打赏
  • 举报
回复
没关系 数据太多 贴不上来 2010-11-24的 那就算那一天的吧
nianzhang747 2010-12-15
  • 打赏
  • 举报
回复
OpenPrx 开盘价(该段时间内最初的价格)
HighPrx 最高价 (该段时间内最高的价格)
LowPrx 最低价(该段时间内最低的价格)
LastPrx 收盘价 (该段时间内最后的价格)

比如区间取60min
12:10 价格是 85.23
12:45 价格是 86.52
12.56 价格是 86.52
则开盘价是 85.23 收盘价是 86.52

ACMAIN_CHM 2010-12-15
  • 打赏
  • 举报
回复
楼主,你提供的测试数据中的所有日期都是 2010-11-24的,你在#2楼的结果是怎么出来的?对日期需要做偏移运算?
WWWWA 2010-12-15
  • 打赏
  • 举报
回复
`OpenPrx` float ,
`HighPrx` float ,
`LowPrx` float ,
`LastPrx` float
这4个字段是什么意思?
WWWWA 2010-12-15
  • 打赏
  • 举报
回复
你上述结果是否基于你提供的数据?
最高价 最低价 开盘价 收盘价分别是哪些字段
nianzhang747 2010-12-15
  • 打赏
  • 举报
回复
问题是查出
每1min, 5min, 15min, 30min, 60min, 4H, 8H, day 的最高价 最低价 开盘价 收盘价
不知道我的问题谁清楚没?
SELECT Symbol,
FROM_UNIXTIME(StartTime/1000,'%Y%m%d-%H') AS ST,
OpenPrx,MAX(HighPrx) AS HighPrx,
MIN(LowPrx) AS LowPrx,
LastPrx
FROM AikidoFxTick_t t0
WHERE t0.Symbol='CAD_JPY'
GROUP BY ST
ORDER BY ST DESC
LIMIT 200;

这是我查出的每小时的数据 数据样例如下
Symbol	ST	OpenPrx	HighPrx	LowPrx	LastPrx
CAD_JPY 20101213-14 83.296 83.339 83.205 83.3015
CAD_JPY 20101213-12 83.125 83.33 83.077 83.129
CAD_JPY 20101213-09 83.1495 83.221 83.041 83.153
CAD_JPY 20101213-06 83.151 83.26 83.103 83.165
CAD_JPY 20101211-07 83.16 83.185 83.095 83.1475
CAD_JPY 20101211-04 83.1705 83.235 83.07 83.165
CAD_JPY 20101211-01 83.128 83.23 83.03 83.123
CAD_JPY 20101210-23 82.8025 83.233 82.755 82.8325
CAD_JPY 20101210-20 82.6975 82.941 82.575 82.6775

WWWWA 2010-12-15
  • 打赏
  • 举报
回复
要求结果贴出来
cchaha 2010-12-15
  • 打赏
  • 举报
回复
MARK
加载更多回复(16)
本期是我们鸿蒙系列课程的第1期,主要目标是让大家先搞清楚鸿蒙的整体架构,开发环境搭建,代码构建和编译烧录测试等玩法。然后就是核心的代码解读和试验了,譬如liteos_a的启动流程,liteos的shell原理和用法,鸿蒙各组件的加载和使用。鸿蒙的ipc和rpc,ace模块的实现和接口,鸿蒙app的sdk介绍和app开发环境搭建,app和hap的区分,注册鸿蒙app开发者,本次测试应用、上传应用等。 本课程是整个第1期的第1个课程,我们基于HI3516DV300开发板+liteos_a / HI3861开发板+liteos_m这2套组合来整个打通做一遍。从源码gitee下载,本地开发环境部署,到解压、配置、编译、烧录、启动运行,在shell上看一些信息,本地bm工具安装hap包运行,本地开发helloworld程序运行。课程目标是让大家整体的体验harmonyos开发全流程。Harmonyos支持Windows和linux两种开发方式,windows下提了南向ide(基于vscode+deveco studio插件),可以配置编译并烧录,还可以单步调试。而linux下基于命令行只能配置编译不能烧录(但是开发起来很清爽)。这些开发细节在这个课程都会带大家走一遍。老规矩,一边做一边讲。我昨天已经打好了ubuntu20.04上传到核心课程的虚拟机网盘里了,本课程会使用这个ubuntu200401LTS来做。 课程特色*完全零基础,降低学习门槛。*深入浅出,通俗易懂。不怕学不会,就怕你不学习。*思路清晰、语言风趣,对着视频看也不会想睡觉······*视频 + 文档 + 练习题 + 答疑,全方位保证学习质量。*基础知识 + 思路引导的教学方式,授之以鱼更授之以渔。*系列课程。本教程只是入门篇,后续还有更多更精彩视频更新中。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧