0

我有一个简单的问题;我认为会有一个简单的解决方案。想象一下这样的表:

Name           Timestamp              Data
Bob            2011-01-01 01:00:00    Hi
Alice          2011-02-02 02:00:00    Hello
Alice          2011-03-03 03:00:00    Hello
Bob            2011-04-04 04:00:00    Bye
Charlie        2011-05-05 05:00:00    Cheese
Charlie        2011-06-06 06:00:00    Toast

我想要的只是能够运行一个查询,显示每个名称的最新条目。因此,对于上表,我想要这样的输出:

Name           Timestamp              Data
Bob            2011-04-04 04:00:00    Bye
Alice          2011-03-03 03:00:00    Hello
Charlie        2011-06-06 06:00:00    Toast

按数据排序。我不知道该怎么做。我虽然我可以这样做:

SELECT DISTINCT(Name), timestamp, Data FROM Table ORDER BY Data

但这不起作用。任何帮助将不胜感激,干杯。

4

3 回答 3

1

使用此查询获取最后的唯一值,

SELECT * FROM (select * from `table` order by date DESC) t group by name
于 2014-02-04T04:58:23.323 回答
0
SELECT DISTINCT Name, Timestamp, Data
FROM Table
WHERE Timestamp =
    (
     SELECT MAX(Timestamp)
     FROM Table AS tempTable
     WHERE Table.Name = tempTable.Name
    )
于 2011-03-21T18:31:17.890 回答
0
select t1.* from table as t1
inner join (
select name,max(`timestamp`) as `timestamp`
from table
group by name) as t2
on t1.name = t2.name and t1.`timestamp` = t2.`timestamp`
于 2011-03-21T18:26:10.910 回答