我想在A列中选择最大值。现在,我在A列中有多个最大值。我如何才能用最大值取1行,然后去掉其余的值呢?我尝试过使用distinct和limit 1,但没有成功。
预期的:只有2行,1行有消息"srth“,另一行有”同-- ts -1“或”-同-ts-2“,但不是两者都有,因为它们具有相同的最大ts 1413588888。
我的问题是:
SELECT A.*, DU.user as username, DU.thumbnail
FROM DB_CHATS A
INNER JOIN (
SELECT distinct max(timestamp) TS, user, partner
FROM db_chats
GROUP BY user,partner ) T
on A.TimeStamp=T.TS
and A.user=T.User
LEFT JOIN db_users DU on t.partner = DU.id
where A.user = 'utQ8YDxD6kSrlI5QtFOUAE4h'小提琴:木琴
发布于 2014-10-17 22:05:38
如果您不关心返回具有最大时间戳的行,则可以将group by user, partner, timestamp添加到查询的末尾。
SELECT A.*, DU.user as username, DU.thumbnail
FROM DB_CHATS A
INNER JOIN (
SELECT distinct max(timestamp) TS, user, partner
FROM db_chats
GROUP BY user,partner ) T
on A.TimeStamp=T.TS
and A.user=T.User
LEFT JOIN db_users DU on t.partner = DU.id
where A.user = 'utQ8YDxD6kSrlI5QtFOUAE4h'
group by user, partner, timestamphttp://sqlfiddle.com/#!2/efe6e/2
https://stackoverflow.com/questions/26433686
复制相似问题