V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
vook
V2EX  ›  MySQL

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

  •  
  •   vook · 2014-11-21 10:25:06 +08:00 · 2949 次点击
    这是一个创建于 3657 天前的主题,其中的信息可能已经有所发展或是发生改变。
    
    想取出各个name的最新的dateline所在记录的集合。
    11 条回复    2014-11-21 22:22:54 +08:00
    incompatible
        1
    incompatible  
       2014-11-21 10:31:54 +08:00   ❤️ 1
    select name, max(dateline) from t group by name
    vook
        2
    vook  
    OP
       2014-11-21 10:35:34 +08:00
    @incompatible 各个 name 的最新的 dateline 所在记录, 还包括 id 等其他的字段。
    xlmo
        3
    xlmo  
       2014-11-21 10:37:28 +08:00   ❤️ 1
    SELECT * FROM table GROUP BY `name` ORDER BY dateline DESC
    yanleijava
        4
    yanleijava  
       2014-11-21 10:52:27 +08:00   ❤️ 1
    你指的是Group By排序,参考 http://iyanlei.com/hive_groupby_order.html
    staticor
        5
    staticor  
       2014-11-21 10:55:30 +08:00   ❤️ 1
    @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
        6
    vook  
    OP
       2014-11-21 11:06:02 +08:00
    @xlmo 你这取的是默认排序 name 的第一条记录, 再对 dateline 排序。

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

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

    就是这个。谢谢! 学习了!
    laoyuan
        8
    laoyuan  
       2014-11-21 12:41:01 +08:00
    嗯,只能这样我也是这么写的
    laoyuan
        9
    laoyuan  
       2014-11-21 12:41:34 +08:00
    不过后来我觉得分两条写也无所谓
    alsotang
        10
    alsotang  
       2014-11-21 13:34:21 +08:00   ❤️ 1
    呃,楼上全是乱来。你们就不懂有个叫 window function 的东西存在 sql 中吗
    Fedor
        11
    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;
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3723 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 04:20 · PVG 12:20 · LAX 20:20 · JFK 23:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.