eloquent - Eloquent 中按 groupBy 列的总和
问题描述
我的数据库记录了我们每个工程师每周的工作时间。我需要做的是返回一段时间内的所有时间('period_id'),按工程师('engineer_id')对它们进行分组,然后将以下各列加起来:周一、周二、周三、周四、周五、周六和周日. 基本上返回一段时间内每个工程师的总小时数。
希望这是有道理的。走到这一步。
$totals = Hours::where('late', 0)->where('period_id', $period->id);
$hours_totals = $totals->groupBy('employee_id');
解决方案
用这个:
Hours::select('engineer_id', DB::raw('sum(mon) mon'), DB::raw('sum(tues) tues'), [...])
->where('late', 0)
->where('period_id', 1)
->groupBy('engineer_id')
->get();
推荐阅读
- android - 如何在方向变化的中心对齐 Gridlayout 子线性布局?
- node.js - 如何使用 NodeJS 读取大的 utf-8 编码文本文件
- javascript - d3 版本 5 中的 d3.layout.treemap().children()
- c++ - 编译器错误 C2541 -“删除”:删除:无法删除不是指针的对象
- nlp - _thnn_binary_cross_entropy_forward 在 CPUType 上不支持 Long
- php - 在 Symfony 4 的 addEventListener 的新生成字段中添加 addEventListener
- fetch - JavaScript 获取:缺少 RapidAPI 应用程序密钥
- javascript - 如何检测 javascript 中的 wordpress 管理栏?
- r - 使用 extrafont 将字体导入 R 时,如何解决“无字体名称”问题?
- swift - 消耗品 IAP:针对一个 iTunes 帐户区分两个不同的应用程序用户