MySQL GROUP BY 返回第一项 - 需要选择最后一项
Posted
技术标签:
【中文标题】MySQL GROUP BY 返回第一项 - 需要选择最后一项【英文标题】:MySQL GROUP BY return the first item - Need to select the last item 【发布时间】:2011-08-15 22:15:58 【问题描述】:我有一个表,其中包含相同 user_id 的重复数据。我需要为每个 user_id 选择最新的记录。当我使用 group by 然后订购。 mysql 按该顺序执行该功能,但我得到了错误的记录。
表格 - tblUsersProfile
字段类型 Null 默认注释 id int(11) 无 AI user_id int(7) 否 first_name_id int(11) 否 last_name_id int(11) 否 location_id int(11) 否 出生日期 是 NULL sex int(1) 是 NULL 1 代表男性,0 代表女性 created_by int(21) 否 activity_ts 时间戳 无 CURRENT_TIMESTAMP
【问题讨论】:
【参考方案1】:select t1.* from tblUsersProfile as t1
inner join (
select user_id,max(activity_ts) as rct
from tblUsersProfile
group by user_id) as t2
on t1.user_id = t2.user_id and t1.activity_ts = t2.rct
如果您的所有其他数据都是冗余的并且所有记录都相等,那么我的查询可能比必要的更“复杂”。
【讨论】:
以上是关于MySQL GROUP BY 返回第一项 - 需要选择最后一项的主要内容,如果未能解决你的问题,请参考以下文章
解析mysql中:单表distinct多表group by查询去除重复记录