为了账号安全,请及时绑定邮箱和手机立即绑定

排名查询结果如何去掉重复数据?

排名查询结果如何去掉重复数据?

翻阅古今 2018-10-24 07:45:56
有一个用户排行榜表,需要按分数高低进行名次排序并输出,如有重复用户的,取该用户的最高分现在我是这样写的DB::select("SELECT nickname, id, fraction, FIND_IN_SET( fraction, (                         SELECT GROUP_CONCAT( fraction                    ORDER BY fraction DESC )                      FROM fan_rankings WHERE test_id=$test_id)                     ) AS rank                     FROM fan_rankings                     WHERE test_id = $test_id AND user_id = $user->id ORDER BY fraction DESC");我在ORDER BY 前加了个GROUP BY(user_id),但是有报错,请教下有什么办法还有怎么用ORM的写法来呢,感觉用原生的写有点复杂本人使用的laravel5.4版本请大佬不吝赐教
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

FanRanking::query()->groupBy('user_id')->orderByDesc('fraction')->limit(100)->get(['user_id', \DB::raw('max(fraction) as fraction')])

在laravel社区某个大佬的回答,看起来简洁又有用!


查看完整回答
反对 回复 2018-10-24
  • 1 回答
  • 0 关注
  • 641 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信