Mysql 使用group by将范围内的最大值与特定日期进行比较
我希望mysql查询检查结束日期的高值是否大于从结束日期起一年内的所有高值-该符号为1天 MAX与group by进行比较,并使用正确的符号进行检查以进行比较。我该怎么做呢 我的表格结构是:Mysql 使用group by将范围内的最大值与特定日期进行比较,mysql,Mysql,我希望mysql查询检查结束日期的高值是否大于从结束日期起一年内的所有高值-该符号为1天 MAX与group by进行比较,并使用正确的符号进行检查以进行比较。我该怎么做呢 我的表格结构是: id Symbol date high 1 ABC 2015-01-23 45 2 ABC 2015-01-22 40 3 ABC 2014-01-28 33 4 xyz 2015-01-23 37 5 xyz 2015-01-20
id Symbol date high
1 ABC 2015-01-23 45
2 ABC 2015-01-22 40
3 ABC 2014-01-28 33
4 xyz 2015-01-23 37
5 xyz 2015-01-20 70
6 ANO 2015-01-20 170
7 JE 2015-01-25 560
8 JE 2015-01-23 770
SELECT `symbol`,`high` as current_high from history as h
where date='2015-01-23'
AND symbol = 'ABC';
SELECT `date`,`symbol`, MAX(`high`) as 1_yrhigh from history
where date between '2014-01-23'
and '2015-01-22' AND symbol='ABC'
如果当前_高>1年_高,则需要结果
所以从上面的示例表的查询结果应该是
1 ABC 2015-01-23 45
8 JE 2015-01-23 770
xyz不显示为37
ie 70
ANO不显示,因为2015-01-23无记录存在,以便获得以下查询中每个符号使用的当前高点
Select symbol,MAX(high) as currentHigh
From table
Where date=CURDATE()
Group By symbol
Select symbol,MAX(high) as lastOneYrHigh
From table
Where date between (CURDATE()-INTERVAL 1 DAY-INTERVAL 1 YEAR)-(CURDATE() - INTERVAL 1 DAY)
Group By symbol
为了获得除当前日期外的上一年高点,请使用下面的查询
Select symbol,MAX(high) as currentHigh
From table
Where date=CURDATE()
Group By symbol
Select symbol,MAX(high) as lastOneYrHigh
From table
Where date between (CURDATE()-INTERVAL 1 DAY-INTERVAL 1 YEAR)-(CURDATE() - INTERVAL 1 DAY)
Group By symbol
我能从一个查询中同时得到两个结果吗