如何在mysql中获取某一列所有不同值最新或对应日期最大的记录?

4
例如,我有这样一个表格:

列举如下:

Date      | Id | Total
-----------------------
2014-01-08  1    15
2014-01-09  3    24
2014-02-04  3    24
2014-03-15  1    15
2015-01-03  1    20
2015-02-24  2    10
2015-03-02  2    16
2015-03-03  5    28
2015-03-09  5    28

我希望输出结果为:
Date      | Id | Total
---------------------
2015-01-03  1    20
2014-02-04  3    24
2015-03-02  2    16
2015-03-09  5    28

这里的不同值是Id。我需要每个Id的最新Total。

5个回答

2

0

你也可以在SQL中使用Max()函数:

SELECT date, id, total
   FROM table as a WHERE date = (SELECT MAX(date)
   FROM table as b
  WHERE a.id = b.id
 )

0
你可以按照以下方法来做
SELECT *
FROM YourTable D
WHERE date = (SELECT MAX(date) FROM YourTable WHERE ID = D.ID)

0

另一种方法是使用INNER JOIN

ID查找最新的日期,然后将结果连接回表格以获取

select A.ID,A.Date,A.value 
from yourtable A 
INNER JOIN 
(
select MAX(date) as Date,ID 
from yourtable
group by ID 
) B
ON A.ID =B.ID and A.Date = B.Date

-2

其他答案对我没有用。我找到了下面的代码,对我来说非常有效:

SELECT * FROM TABLE WHERE DATE IN (SELECT MAX(DATE) FROM TABLE)

我正在使用SSMS 2014,SQLServer


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接