【问题标题】:Calculate monthly sum from SQL table (Laravel)从 SQL 表(Laravel)计算每月总和
【发布时间】:2021-07-17 01:57:36
【问题描述】:

我有一个 SQL 表,其中包含一些数据,如下图所示。我想用那个月数计算每月的总值。如何处理 Laravel DB 查询?实际上,我希望将结果作为数组显示在饼图中。如何获取包含每月总和和月份数字的数组?

【问题讨论】:

    标签: php sql laravel


    【解决方案1】:
    TableName::select(DB::raw("DATE_FORMAT(date, '%Y-%m') as month"), DB::raw("sum(value) as value")
             ->groupBy("month")->get();
    

    【讨论】:

    • 请解释你的代码是做什么的以及它是怎么做的。
    【解决方案2】:

    我更喜欢使用集合。如果您将日期列转换为模型中的日期,您可以这样做:

    $items = Item::whereYear('date', '2021')->get()->groupBy(function ($item) {
        return $item->date->month;
    })->map(function ($item) {
        return $item->sum('value');
    });
    return $items;
    

    如果你更喜欢使用 DB 外观

    $items = \Illuminate\Support\Facades\DB::table('items')->get()->groupBy(function ($item) {
        return \Illuminate\Support\Carbon::parse($item->date)->month;
    })->map(function ($item) {
        return $item->sum('value');
    });
    return $items;
    

    无论如何,你最终都会得到一个集合。

    【讨论】:

    • 我只使用 Laravel DB 查询,你能提供解决方案吗?我是 Laravel 框架的新手。谢谢哟
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多