telephone518
2012-11-14 20:02 阅读 2.1k
已采纳

求教:想用Sql查询出每个用户的最后的登录时间

oracle表中有以下3个字段, user_id(用户ID),login_time(登录时间),memo(备注)
想用Sql查询出每个用户的最后的登录时间,

恳请指教

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    nimasike 温故而知新666 2012-11-14 20:22

    SELECT * FROM (
    SELECT user_id , login_time ,row_number() over (partition by user_id order by login_time desc) MM from xxx)
    WHERE mm = 1

    使用 partition by

    点赞 评论 复制链接分享
  • jadethao jadethao 2012-11-14 20:17

    这是不要备注字段:
    select max(d.login_time),d.user_id from table d group by d.user_id order by d.user_id;
    如果要所有可以关联一次表。

    点赞 评论 复制链接分享
  • a627613545 a627613545 2012-11-22 16:05

    select max(d.login_time) as maxTime,d.user_id from table d group by d.user_id

    这样就够了

    假如还用用户其他信息

    select * from table t,(
    select max(d.login_time) as maxTime,d.user_id from table d group by d.user_id
    ) t2 where t.user_id =t2.user_id and t.login_time=t2.maxTime

    还可以再优化 可惜你给的信息不够 其实在你登录的时候更新下用户表的的登录时间 一切都变的简单

    点赞 评论 复制链接分享

相关推荐