如何在laravel php中从数据集编写子查询

Wei*_*ang -2 php collections subquery dataset laravel

数据集

[
     {
        "agent_id": "D01",
        "amount": "2"
     },
     {
        "agent_id": "D01",
        "amount": "2"
     },
     {
        "agent_id": "A01",
        "amount": "1"
     },
     {
        "agent_id": "A01",
        "amount": "1"
     },
    
]
Run Code Online (Sandbox Code Playgroud)

预期结果

[
     {
        "agent_id": "D01",
        "amount": "4"
     },
     {
        "agent_id": "A01",
        "amount": "2"
     },
   
]
Run Code Online (Sandbox Code Playgroud)

你好,有一个原始数据集,有 4 个集合,如上图所示。我试图用 group byagent_id和 sum of the来转换数据amount

我计划使用子查询 likes select agent_id, sum(amount) from (Dataset) group by agent_id,但是我不知道如何在 laravel 子查询中实现它。任何人都可以指导我或提供一些建议。欣赏它。

Don*_*ash 5

如果数据是通过数据集或 api 调用提供的,那么您可以使用 Laravel Collection 方法来操作并获得所需的输出

//Assuming that the data is in array format
$output = collect($data)
  ->groupBy('agent_id')
  ->map(
    fn($records, $agent) => ['agent_id' => $agent, 'amount' => $records->sum('amount')]
  )
  ->values()->all();
Run Code Online (Sandbox Code Playgroud)