sql查询找个别天数高

时间:2015-07-29 07:20:17

标签: mysql

我有一张这样的桌子。

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个日期的个人最大值(值)。我需要像这样的输出。

date           max(value)
2015-06-27       8088.15
2015-06-24       8564.65
2015-06-23       8455.25

我试过了这个查询

SELECT MAX( value ) 
FROM table_name
WHERE DATE
IN (SELECT * 
FROM (    
SELECT DISTINCT DATE
FROM table_name
ORDER BY DATE DESC 
LIMIT 3
) AS t
)

但这实际上给出了最近3个日期的总体最大值(值)。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

只需使用:

SELECT date, MAX( value ) 
FROM table_name
GROUP BY date
ORDER BY DATE desc
LIMIT 3

说明:它会选择grouped datemaximum VALUE ORDERED BY date,并且会因LIMIT 3而返回3行

答案 1 :(得分:0)

为了使查询起作用,您应该根据天数对所需的最大值进行分组,因此您应该添加GROUP BY子句 在您的查询中,仅根据分组日期限制最大值的结果。

SELECT date, MAX(value) FROM table_name
GROUP BY date
ORDER BY DATE desc
LIMIT 3;