如何从mysql中表的前3行获取最小值

时间:2013-09-17 18:58:29

标签: mysql sql

我有一个包含以下列的表名称库存;

Stockcode  Hig   low   Close   Date
MSFT     | 100 |  90 |  95   |2013-09-18
MSFT     | 105 |  96 |  97   |2013-09-17
MSFT     | 104 |  92 |  91   |2013-09-16
MSFT     | 101 |  88 |  100  |2013-09-13

我想列出Date colum中过去3天的Low colum中的最低值。

我尝试了以下查询,但它只是给了我所有日子而不是最近3天的最低值。

SELECT `LOW` 
  FROM `stocksdata` 
  WHERE `STOCKSYMBOL` = "MSFT" 
  ORDER by TIMESTAMP 
  DESC LIMIT 1;

我如何SELECT过去3天的值?

4 个答案:

答案 0 :(得分:0)

SELECT LOW 
FROM stocksdata 
WHERE STOCKSYMBOL = 'MSFT' 
AND date BETWEEN DATE_ADD(NOW(),INTERVAL -3 DAY) AND NOW() 
ORDER by date DESC LIMIT 1 

答案 1 :(得分:0)

试试这个:

select min(low) 
from stocks 
where stockcode = 'MSFT' 
and date BETWEEN CURDATE() -INTERVAL 3 DAY AND CURDATE()

答案 2 :(得分:0)

我对你的列名有点困惑,但你需要将mysql MIN()函数与WHERE子句一起使用,该子句将数据限制在你寻找的日期范围内。你可以尝试一下,让我知道吗?

select min(`LOW`) from `stocksdata` where `Stockcode` = "MSFT" and `Date` > DATE_SUB(now(), interval 3 day);

答案 3 :(得分:0)

根据您的数据看,您正在寻找过去三个交易日内的最低值:

select min(low) from(
    SELECT
        `LOW` 
    FROM `stocksdata` 
    WHERE
        `STOCKSYMBOL` = "MSFT" 
    ORDER by 
        TIMESTAMP DESC LIMIT 3) ltd