1
daimazha 2017 年 8 月 11 日
给你个思路:
select * from x where id in ( select max(id) from x group by name); |
6
LeeSeoung 2017 年 8 月 11 日 select distinct id,userName,post,max(postDate)over(partition by id,userName,post) from xxx
|
7
LeeSeoung 2017 年 8 月 11 日
前提 postDate 得是 date 类型的,不是的话自己转换下
|
8
ayumilove 2017 年 8 月 11 日
子查询结果比较大,建议用 exists
|
9
ayumilove 2017 年 8 月 11 日
要是 Oracle 6 楼 的好~
|
10
daimazha 2017 年 8 月 11 日
|
11
babywhisper 2017 年 8 月 11 日
select * from (select * from <table> ORDER BY archiveTime DESC) as tmp GROUP BY tmp.userName
这样也行把, 但不知道效率如何. |
13
babywhisper 2017 年 8 月 11 日
如果有用**Django ORM**的同学可以参考这篇: https://changchen.me/blog/20170515/ele-interview-solution/
用 annotate 实现楼主想要的效果 ^_^ |
14
nullcc 2017 年 8 月 11 日
select A.userName, postDate, post from table A
inner join (select distinct userName, max(postDate) as maxPostDate from table group by userName) B on A.userName = b.userName and A.postDate = B.maxPostDate 大概是这样 |
15
anoymoux 2017 年 8 月 11 日
加一张表 latest_post(userid,postid)
|
17
quickma 2017 年 8 月 11 日
加表是一个不错的想法,view 也行呀。
|
18
noNOno 2017 年 8 月 11 日
select * from (select *,row_number over (partition by userName order by postdate desc ) as rn from table ) where rn=1
能用 rownumber 吧 |
19
syncher 2017 年 8 月 11 日 via Android
又是一个 group
|
20
fxxkgw 2017 年 8 月 11 日
order by 加 group by
|
21
jeffpan 2017 年 8 月 11 日
SELECT max(login_time) ,user_id ,browser from tb_system_user_login_log group by user_id
我本地有个类似表,好像这样是可以的。 |
22
Buffer2Disk 2017 年 8 月 11 日
@daimazha 的思路不错,但是如果 id 不是自增的,而是通过 uuid 生成的,这个时候下面这个方法可以解决问题。
select b.* from ( select max(post_date) as post_date, user_name from article group by user_name) as a inner join article b ON a.post_date = b.post_date AND a.user_name = b.user_name; 把用户的名字和发帖时间作为一个联合主键来处理。 |
23
daemonghost 2017 年 8 月 11 日 via Android
先按用户名分组,然后再按日期排序,选取指定个数就行了
|
24
beginor 2017 年 8 月 11 日 via Android
最佳的方案是 `row_number` + `partition` , 但是 MySQL 不支持
|
25
finull 2017 年 8 月 11 日
select * from table t where not exists ( select * from table where userName = t.userName and postDate > t.postDate );
不要用聚合什么的 |
26
lenmore 2017 年 8 月 12 日
终极做法是:
当用户发帖时,将最新的 ID 记录到用户表或者单独的一张表。更极端一点把标题时间都冗余了。 查询时 Join 帖子。 |