qq_39015948
2017-08-15 08:04
采纳率: 40%
浏览 3.7k
已采纳

JAVA名次排名问题,怎么获得单人在所有人中的名次...

事情是这样的,每个人都会完成任务,每个人完成任务的个数都不一样,我现在想要获得userid对应的名次,
一张表是用户和任务的关系,一张表是任务成功与否
现在一个是想获得单人在所有人中的排名,还有一个是所有人的排名,以及对应的姓名等等,上图!!!
MySQL的数据库 jdk1.7
![图片说明
图片说明
图片说明
图片说明
图片说明
萌新一个,求大牛们帮帮我

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • 鼠小 2017-08-15 08:44
    已采纳

    想获得单人在所有人中的排名,还有一个是所有人的排名,以及对应的姓名等等
    使用sql语句,,获取所有人的排名,不难,,,获取单人在所有人中排名(这个有点意思,我还没想好)

    你可以先获取所有人的排名(包含姓名,什么的信息)
    然后在代码中处理,,单人在所有人中的排名,,难度不大

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • qq_39015948 2017-08-15 08:08

    就是想传入userId然后获得该用户的排名,还有个功能是获得所有人的排名名次什么的。。。最好是一个SQL写出来

    评论
    解决 无用
    打赏 举报
  • qq_39015948 2017-08-15 08:17

    图片说明

    评论
    解决 无用
    打赏 举报
  • qq_39015948 2017-08-15 08:18

    不好意思。。刚刚图重了

    评论
    解决 无用
    打赏 举报
  • qq_37928448 2017-08-15 08:21

    你可以这样呀 在表中添加一个字段 记录完成任务的个数 这样排序不就很简单了

    评论
    解决 无用
    打赏 举报
  • Tsui丶 2017-08-15 08:26

    那我直接给你思路就好了,查询你肯定会的。排名的话,不管单人的还是全部的都需要先查询所有人,select ROW_NUMBER()OVER(ORDER BY count(成功任务 DESC)) as '排名' from Table where ..... order by ROW_NUMBER()OVER(ORDER BY count(成功任务) DESC (这里可能不需要orderBy 也可能都不需要DESC 具体的还要你去试一试,手边没有合适的数据库去测试) 这个就是查排名 其他的信息就自己查就好了() 然后单人的在查询出所有人的之后根据userId取拿相应的排名就好了

    评论
    解决 无用
    打赏 举报
  • qq_39015948 2017-08-15 09:46

    我可以获得所有人的排名,但是用where加上去就只有一个用户, 默认排名变成1了。。

    评论
    解决 无用
    打赏 举报
  • 砸死接触 2017-08-15 12:51

    路过。。。标记。。。等看最终结果。。。。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题