先使用最新时间戳的select distinct的SQL查询
我有一个mysql表,有三列:用户名、位置、时间戳。这基本上是一个用户活动日志,记录了他们所在的位置以及他们在那里的时间 我想做的是选择一个独特的用户名+位置,其中只提供最近的项目(按时间戳) 因此,假设该表包括:先使用最新时间戳的select distinct的SQL查询,sql,distinct,Sql,Distinct,我有一个mysql表,有三列:用户名、位置、时间戳。这基本上是一个用户活动日志,记录了他们所在的位置以及他们在那里的时间 我想做的是选择一个独特的用户名+位置,其中只提供最近的项目(按时间戳) 因此,假设该表包括: tom roomone 2011-3-25 10:45:00 tom roomtwo 2011-3-25 09:00:00 tom roomtwo 2011-3-25 08:30:00 pam roomone 3011-3-25 07:20:23 我只希望选择这些: tom roo
tom roomone 2011-3-25 10:45:00
tom roomtwo 2011-3-25 09:00:00
tom roomtwo 2011-3-25 08:30:00
pam roomone 3011-3-25 07:20:23
我只希望选择这些:
tom roomone 2011-3-25 10:45:00
tom roomtwo 2011-3-25 09:00:00
使用table1作为tablename,尝试以下查询:
select username, location, max(timestamp) from table1
group by username, location
这个答案实际上并不能保证其他列与用户名/时间戳的记录相同,但下面的答案(使用子查询)可以保证 答案载于:
select t1.*
from (
select ForeignKeyId,AttributeName, max(Created) AS MaxCreated
from YourTable
group by ForeignKeyId,AttributeName
) t2
join YourTable t1
on t2.ForeignKeyId = t1.ForeignKeyId
and t2.AttributeName = t1.AttributeName
and t2.MaxCreated = t1.Created