前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >laravel ORM分组求和(多个字段),并按结果再次求和并排序

laravel ORM分组求和(多个字段),并按结果再次求和并排序

作者头像
躺平程序员老修
发布2023-09-05 15:59:46
5040
发布2023-09-05 15:59:46
举报

laravel

描述:

数据表结构:

dd.png
dd.png

需求:

按照用户分组,并把该用户的所有unknown字段和important字段分别求和,最后按照该用户的sum(unknown)与sum(important)之和排序取前十。

代码:

代码语言:javascript
复制
        $lastYear = Carbon::today()->subYear();
        $answers = Answer::whereIn('user_id', $classmateIdArr)
            ->where('start_time', '>', $lastYear)
            ->groupBy('user_id')
            ->selectRaw('user_id')
            ->selectRaw('sum(unknown) as unknownCount')
            ->selectRaw('sum(important) as importantCount')
            ->selectRaw('sum(important+unknown) as allCount')
            ->having('allCount', '>', '0')
            ->orderBy('allCount', 'desc')
            ->distinct()
            ->take(10)->get();

        return $answers;

希望对大家有启发,selectRaw可以写在一起,我习惯字段和逻辑分开。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 描述:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档