取出一个满足 A 条件, B 字段倒序的集合, 怎么解? 求思路。

2014-11-21 10:25:06 +08:00
 vook


想取出各个name的最新的dateline所在记录的集合。
2898 次点击
所在节点    MySQL
11 条回复
incompatible
2014-11-21 10:31:54 +08:00
select name, max(dateline) from t group by name
vook
2014-11-21 10:35:34 +08:00
@incompatible 各个 name 的最新的 dateline 所在记录, 还包括 id 等其他的字段。
xlmo
2014-11-21 10:37:28 +08:00
SELECT * FROM table GROUP BY `name` ORDER BY dateline DESC
yanleijava
2014-11-21 10:52:27 +08:00
你指的是Group By排序,参考 http://iyanlei.com/hive_groupby_order.html
staticor
2014-11-21 10:55:30 +08:00
@vook selct * from
(select name, max(dateline) as maxdate from t group by name)
natura left join (
select name, dateline as maxdateline , id ...
from t
)

?这样试试
vook
2014-11-21 11:06:02 +08:00
@xlmo 你这取的是默认排序 name 的第一条记录, 再对 dateline 排序。

我想要的是对时间排序后的第一条记录。
vook
2014-11-21 11:36:13 +08:00
@yanleijava

SELECT * FROM (SELECT * FROM t1 ORDER BY dateline DESC) as t2 GROUP BY `name`;

就是这个。谢谢! 学习了!
laoyuan
2014-11-21 12:41:01 +08:00
嗯,只能这样我也是这么写的
laoyuan
2014-11-21 12:41:34 +08:00
不过后来我觉得分两条写也无所谓
alsotang
2014-11-21 13:34:21 +08:00
呃,楼上全是乱来。你们就不懂有个叫 window function 的东西存在 sql 中吗
Fedor
2014-11-21 22:22:54 +08:00
SELECT group_concat(id order by dateline desc SEPARATOR '') AS id FROM table group by game_id;

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/148193

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX