我的表实际上是这样的:
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
。这不是我正在寻找的正确输出。
答案 0 :(得分:2)
获取唯一日期,然后使用order by
和limit
:
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;