我有一张这样的桌子。
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个日期的总体最大值(值)。我怎样才能做到这一点?
答案 0 :(得分:2)
只需使用:
SELECT date, MAX( value )
FROM table_name
GROUP BY date
ORDER BY DATE desc
LIMIT 3
说明:它会选择grouped date
和maximum 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;