我有一个包含以下列的表名称库存;
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天的值?
答案 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