比较某个特定日期范围内的最大值使用组
问题描述:
我希望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 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'
想要的结果,如果current_high> 1yr_high
所以从上面的示例表的查询结果应该是
1 ABC 2015-01-23 45
8 JE 2015-01-23 770
XYZ不会显示为37 < max
即70
ANO不显示为无线,以2015年1月23日出现
答
,以获得高电流低于查询
Select symbol,MAX(high) as currentHigh
From table
Where date=CURDATE()
Group By symbol
每个符号的使用,以获得最后1年来新高,除了下面的查询当前的日期使用
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
我可以同时得到一个单一的查询花花公子:) – Qpd 2015-04-02 07:02:43
它需要一个子查询。 – 2015-04-03 18:04:31