表数据
SELECT * FROM AikidoFxTick_T WHERE Symbol="CAD_JPY";
Symbol StartTime OpenPrx HighPrx LowPrx LastPrx
CAD_JPY 1.29059e+012 81.4275 81.45 81.39 81.4325
CAD_JPY 1.29059e+012 81.4375 81.46 81.405 81.4375
CAD_JPY 1.29059e+012 81.4375 81.455 81.395 81.4325
CAD_JPY 1.29059e+012 81.425 81.46 81.41 81.4275
CAD_JPY 1.29059e+012 81.4225 81.455 81.405 81.4275
CAD_JPY 1.29059e+012 81.4275 81.445 81.385 81.4075
CAD_JPY 1.29059e+012 81.4025 81.45 81.38 81.4325
CAD_JPY 1.29059e+012 81.4275 81.445 81.395 81.4225
CAD_JPY 1.29059e+012 81.4125 81.43 81.335 81.3525
CAD_JPY 1.29059e+012 81.388 81.411 81.35 81.373
CAD_JPY 1.29059e+012 81.388 81.411 81.35 81.37
CAD_JPY 1.29062e+012 82.578 82.61 82.55 82.5825
CAD_JPY 1.29062e+012 82.5725 82.595 82.53 82.563
CAD_JPY 1.29062e+012 82.5525 82.59 82.52 82.5675
CAD_JPY 1.29062e+012 82.5455 82.571 82.515 82.54
CAD_JPY 1.29062e+012 82.438 82.461 82.375 82.4325
CAD_JPY 1.29062e+012 82.4325 82.47 82.385 82.4425
CAD_JPY 1.29062e+012 82.4275 82.485 82.405 82.4625我的sql语句是
SELECT Symbol,FROM_UNIXTIME(StartTime/1000,'%Y%m%d-%H') AS StartTime,OpenPrx,MAX(HighPrx),MIN(LowPrx),LastPrx FROM AikidoFxTick_t WHERE Symbol='CAD_JPY' GROUP BY StartTime;得出结果类似
Symbol StartTime OpenPrx MAX(HighPrx) MIN(LowPrx) LastPrx
CAD_JPY 20101124-18 81.4275 81.651 81.33 81.4325
CAD_JPY 20101124-21 81.6025 82.196 81.565 81.593
CAD_JPY 20101124-23 82.1625 82.586 81.985 82.233
CAD_JPY 20101125-02 82.5425 82.661 82.375 82.5575
CAD_JPY 20101125-05 82.548 82.761 82.49 82.5725
CAD_JPY 20101125-08 82.668 82.776 82.485 82.668
CAD_JPY 20101125-10 82.56 82.746 82.44 82.563
CAD_JPY 20101125-13 82.6175 82.776 82.59 82.628
CAD_JPY 20101125-16 82.738 82.803 82.582 82.7125
CAD_JPY 20101125-19 82.761 82.848 82.607 82.7725
CAD_JPY 20101125-21 82.76 82.83 82.636 82.7575但是openprx 和lastprx 不对
应该openprx是这一小时最早的一个价格
lastprx 是这一小时最后的一个价格请问怎么查
SELECT * FROM AikidoFxTick_T WHERE Symbol="CAD_JPY";
Symbol StartTime OpenPrx HighPrx LowPrx LastPrx
CAD_JPY 1.29059e+012 81.4275 81.45 81.39 81.4325
CAD_JPY 1.29059e+012 81.4375 81.46 81.405 81.4375
CAD_JPY 1.29059e+012 81.4375 81.455 81.395 81.4325
CAD_JPY 1.29059e+012 81.425 81.46 81.41 81.4275
CAD_JPY 1.29059e+012 81.4225 81.455 81.405 81.4275
CAD_JPY 1.29059e+012 81.4275 81.445 81.385 81.4075
CAD_JPY 1.29059e+012 81.4025 81.45 81.38 81.4325
CAD_JPY 1.29059e+012 81.4275 81.445 81.395 81.4225
CAD_JPY 1.29059e+012 81.4125 81.43 81.335 81.3525
CAD_JPY 1.29059e+012 81.388 81.411 81.35 81.373
CAD_JPY 1.29059e+012 81.388 81.411 81.35 81.37
CAD_JPY 1.29062e+012 82.578 82.61 82.55 82.5825
CAD_JPY 1.29062e+012 82.5725 82.595 82.53 82.563
CAD_JPY 1.29062e+012 82.5525 82.59 82.52 82.5675
CAD_JPY 1.29062e+012 82.5455 82.571 82.515 82.54
CAD_JPY 1.29062e+012 82.438 82.461 82.375 82.4325
CAD_JPY 1.29062e+012 82.4325 82.47 82.385 82.4425
CAD_JPY 1.29062e+012 82.4275 82.485 82.405 82.4625我的sql语句是
SELECT Symbol,FROM_UNIXTIME(StartTime/1000,'%Y%m%d-%H') AS StartTime,OpenPrx,MAX(HighPrx),MIN(LowPrx),LastPrx FROM AikidoFxTick_t WHERE Symbol='CAD_JPY' GROUP BY StartTime;得出结果类似
Symbol StartTime OpenPrx MAX(HighPrx) MIN(LowPrx) LastPrx
CAD_JPY 20101124-18 81.4275 81.651 81.33 81.4325
CAD_JPY 20101124-21 81.6025 82.196 81.565 81.593
CAD_JPY 20101124-23 82.1625 82.586 81.985 82.233
CAD_JPY 20101125-02 82.5425 82.661 82.375 82.5575
CAD_JPY 20101125-05 82.548 82.761 82.49 82.5725
CAD_JPY 20101125-08 82.668 82.776 82.485 82.668
CAD_JPY 20101125-10 82.56 82.746 82.44 82.563
CAD_JPY 20101125-13 82.6175 82.776 82.59 82.628
CAD_JPY 20101125-16 82.738 82.803 82.582 82.7125
CAD_JPY 20101125-19 82.761 82.848 82.607 82.7725
CAD_JPY 20101125-21 82.76 82.83 82.636 82.7575但是openprx 和lastprx 不对
应该openprx是这一小时最早的一个价格
lastprx 是这一小时最后的一个价格请问怎么查
解决方案 »
- 不带年份的时间段信息(如12月15日~2月15日)怎么存储比较好?
- 请大家帮帮忙看看,pl/pgsql 存储过程 用什么 调试工具比较好,或者自己写个调试程序
- 分享---每半月一个分区,分区自动维护
- 求助:winform程序用的mysql数据库如何生成不用在使用端安装mysql服务器的程序
- mysql date 数据格式设定问题
- 诡异的delete失败事件,求助
- 请教perl-DBD-mysql-4.012-1.el5.rf.i386 包依赖问题!
- 高分请教在win2000下mysql的使用,感激不尽啊!
- 请教一个小结果集驱动大结果集的问题
- 请教case when的用法
- 数据库连接问题
- mysql 存储过程 事务
贴建表及插入记录的SQL
执行这条SQL语句会有语法错误,因为在带有Group By 的子句中,
语句格式:select '需要查询的内容' from table_name where <condition> group by column_name;1.'需要查询的内容' 只能是使用聚合函数 或者 是 group by 后面的条件字段(eg。StartTime),因为使用group by 之后,就选择性的把多条记录聚合成一条了,你上面所提到的
“但是openprx 和lastprx 不对” 就是因为这个条件指定不明确,因为在多条记录聚合当中,你没有准确的给 它 一个 条件 ,所以就会有语法错误SQL范例:SELECT Symbol,FROM_UNIXTIME(StartTime/1000,'%Y%m%d-%H') AS StartTime,MAX(OpenPrx),MAX(HighPrx),MIN(LowPrx),MAX(LastPrx) FROM AikidoFxTick_t WHERE Symbol='CAD_JPY' GROUP BY StartTime;
语句解析:对按照group by语句聚合之后的记录进行有条件性的筛选,
MAX(OpenPrx) 得到的结果将会是 在指定的一小时内,,“最早的一个价格” 在本组中最高的价格值,
最早的价格不是最高的价格 这个应该按照StartTime 进行筛选,StartTime 最小为最早
反之 最大为LastPrx请问如何查询?
[征集]分组取最大N条记录方法征集,及散分....
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。