MySQL查询以查找表

时间:2015-07-27 11:04:19

标签: mysql date

我的表实际上是这样的:

date           value
2015-06-27     8088.15
2015-06-27     8083.25
2015-06-27     8068.25
2015-06-24     8246.45
2015-06-24     8343.55
2015-06-24     8232.35
2015-06-24     8564.65
2015-06-23     8354.75
2015-06-23     8455.25
2015-06-23     8451.45
2015-06-22     8343.55
2015-06-22     8345.75
2015-06-21     8023.75
2015-06-21     8029.85
2015-06-20     8023.95

我想从这样的表中查询最新的3个日期。我期待的输出是:

2015-06-27
2015-06-24
2015-06-23

这样做的目的是找出最近3天的最大值(最大值)和最小值(最小值)。表中的日期是工作日的日期,但可以有假期,每天可以有无限数量的行。

如何从表中查询3个最新日期?
我试过这个select date from table_name order by date desc。这不是我正在寻找的正确输出。

3 个答案:

答案 0 :(得分:2)

获取唯一日期,然后使用order bylimit

select date
from (select distinct date from table t) d
order by date desc
limit 3;

答案 1 :(得分:2)

SELECT date
     , MAX(value) max_val
     , MIN(value) min_val
  FROM my_table 
 GROUP  
    BY date 
 ORDER 
    BY date DESC 
 LIMIT 3;
+------------+---------+---------+
| date       | max_val | min_val |
+------------+---------+---------+
| 2015-06-27 | 8088.15 | 8068.25 |
| 2015-06-24 | 8564.65 | 8232.35 |
| 2015-06-23 | 8455.25 | 8354.75 |
+------------+---------+---------+

答案 2 :(得分:1)

使用以下查询:

select `date` from (select distinct `date` from table t1) d
order by `date` desc limit 3;