我有这样的数据库 struct

消费表

| ID | VOLTAGE | POWER | ENERGY |     CREATED_AT      |
| -- | ------- | ----- | ------ | ------------------- |
|  1 |     220 |  0.04 |      4 | 2023-05-03 13:04:05 |
|  2 |     210 |  0.03 |      5 | 2023-05-03 15:04:05 |
|  3 |     213 |  0.04 |      2 | 2023-05-06 02:04:05 |
|  4 |     221 |  0.05 |      4 | 2023-05-06 05:04:05 |

我有这样的疑问

return Consumption::select(
      DB::raw('
        DATE(created_at) as date, //GroupBy DATE
        avg(voltage) voltage, //Average column VOLTAGE
        avg(power) power, //Average column POWER
        ? (energy) energy //how to get all data energy in array ?
     ')
  )
  ->groupBy('date')
  ->get();

How to get all data energy in array ?

我的期望是:

[
  {
    "date": "2023-05-03",
    "voltage": "215",
    "power": "0.035",
    "energy": [4,5]
  },
  {
    "date": "2023-05-06",
    "voltage": "217",
    "power": "0.045",
    "energy": [2,4]
  }
]

推荐答案

在MySQL中,您可以使用GROUP_CONCAT

SELECT 
    DATE(`created_at`),
    AVG(voltage),
    AVG(power),
    GROUP_CONCAT(energy)
FROM consumption
GROUP BY DATE(`created_at`)

Laravel相关问答推荐

Laravel FAKER语法

如何从@foreach 循环中捕获所有数据并将其传递给 值? - Laravel

Laravel:在失败时处理 findOrFail()

Laravel 4:如何将 WHERE 条件应用于 Eloquent 类的所有查询?

Laravel 5.1 如何在Blade 文件上使用 {{ old('') }} 助手进行无线电输入

在 laravel 查询构建器中使用多个 where 子句

使用 Laravel Socialite 登录 Facebook

将非框架 PHP 项目移植到 Laravel 4.x

laravel Blade中多选选项中的旧值

如何使用外部图像生成 html div 的 screenshot截图?

Laravel Eloquent 在子查询中有两个WHERE NOT IN

Filesystem.php 中的 ErrorException

无法声明类 Controller,因为该名称已在使用中

在 laravel 中安装 vue 3.0

如何在 Laravel 中 Refresh刷新用户对象?

如何在没有日志(log)、没有信息的情况下调试 Laravel 错误 500

同一模型上的 Laravel 父/子关系

Laravel 数据迁移

Laravel 5 Illuminate\Http\Request 的方法不允许静态调用

Laravel 5.2 |测试 UploadedFile 在发布后错过了 $test 值?