Laravel Sum 列数据库 Eloquent

And*_*rew 5 mysql laravel eloquent

尝试在我的一个表中获取 int 字段的总和应该很容易,不幸的是,无论我使用 Laravel、MySQL 还是 Excel,我都不会得到不同的结果。

Laravel 5.4 给了我20506

Table::sum('field_name');
Run Code Online (Sandbox Code Playgroud)

MySQL 给了我1830

Select sum(field_name) from table;
Run Code Online (Sandbox Code Playgroud)

将 Excel 工作表中的数据导入数据库之前: Sum 给了我145689

任何的想法?我试图在求和之前转换为整数,但它不起作用。所有数字都很大,但不包含逗号或点。

我必须求和的值示例:(有时包含空单元格)

17906774
99630157
28581131

159551532
20312892
668928885
Run Code Online (Sandbox Code Playgroud)

Sag*_*ora 5

您可以将 Laravel 聚合函数 SUM 用作:

$result = DB::table('table_name')
                ->select(DB::raw('SUM(field_name) as total_field_name'))
                ->get();
Run Code Online (Sandbox Code Playgroud)

更多详情您可以关注:

https://laravel.com/docs/5.4/queries

谢谢


ahm*_*ali 5

$query = YourModel::query();
$query->withCount([
'activity AS yoursum' => function ($query) {
        $query->select(DB::raw("SUM(amount_total) as paidsum"))->where('status', 'paid');
    }
]);
Run Code Online (Sandbox Code Playgroud)

  • 感谢您提供此代码片段,它可能会提供一些有限的即时帮助。正确的解释[将大大提高](//meta.stackexchange.com/q/114762)它的长期价值,通过展示*为什么*这是一个很好的问题解决方案,并将使其对未来的读者更有用其他类似的问题。请[编辑]您的答案以添加一些解释,包括您所做的假设。 (2认同)