MySql:变量行最大最小查询?

时间:2012-06-14 19:45:29

标签: mysql sql

我有一个MySql表,其中包含股票报价(stock_symbol,quote_date,open_price,high_price,low_price,close_price),需要找出各种最大值和最小值:Max High / Min Low超过10/20/245/252天。

我知道如何使用每个句点的SELECT查询来执行此操作:

SELECT max(high_price), min(low_price) FROM mytable WHERE stock_symbol = 'GOOG' ORDER BY quote_date DESC LIMIT 10;

是否可以使用单个SELECT语句完成,而不会使查询对数据库服务器过于强烈?单个SELECT语句是否比多个SELECT语句执行得更好?

任何想法/帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

最好在一个语句中执行,但问题仅在于索引:确保在所有列上都有一个索引,您可以在where子句中询问最小值和最大值:hight_price,low_price和STOCK_SYMBOL。

对于索引,此请求将是即时的,即使对于非常大的表而且没有LIMIT 10

不要在此查询中放置ORDER BY:它没用,因为min和max是相同的,与您在集合中查看的顺序无关。

您的查询应该只是

SELECT max(high_price), min(low_price) FROM mytable WHERE stock_symbol = 'GOOG'

如何创建索引:http://dev.mysql.com/doc/refman/5.0/en/create-index.html