如何在laravel php中从dataset编写子查询 数据集 预期结果

如何在laravel php中从dataset编写子查询 数据集 预期结果,php,laravel,collections,dataset,subquery,Php,Laravel,Collections,Dataset,Subquery,您好,有一个原始数据集,包含4个集合,如上所示。我试图通过agent\u id和金额之和来转换数据 我计划使用子查询,如选择代理id,按代理id从(数据集)组中求和(金额),但我不知道如何在laravel子查询中实现它。谁能给我指点一下,或者提供一些建议。非常感谢。如果数据是通过数据集或api调用提供的,那么您可以使用Laravel收集方法来操作并获得所需的输出 //假设数据为数组格式 $output=收集($data) ->groupBy('agent\u id') ->地图( fn($rec

您好,有一个原始数据集,包含4个集合,如上所示。我试图通过
agent\u id
金额之和来转换数据


我计划使用子查询,如
选择代理id,按代理id从(数据集)组中求和(金额),但我不知道如何在laravel子查询中实现它。谁能给我指点一下,或者提供一些建议。非常感谢。

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

//假设数据为数组格式
$output=收集($data)
->groupBy('agent\u id')
->地图(
fn($records,$agent)=>['agent\u id'=>$agent,'amount'=>$records->sum('amount')]
)
->值()->all();

通常,当涉及到复杂的查询时,可能需要自己构建它并使用
DB::raw
执行它。()@Nicolas感谢您的回复,但是结果数据是从数据集而不是表格中检索的。您的意思是使用集合吗?您可以使用类似于
Collection::reduce()
@HazemMohamed hello-thansk的内容作为建议。你能帮我举个例子吗?因为我刚才试过了,但还是没能通过小组来实现,请检查@Donkarnash的答案,这是一个非常好的例子
[
     {
        "agent_id": "D01",
        "amount": "2"
     },
     {
        "agent_id": "D01",
        "amount": "2"
     },
     {
        "agent_id": "A01",
        "amount": "1"
     },
     {
        "agent_id": "A01",
        "amount": "1"
     },
    
]
[
     {
        "agent_id": "D01",
        "amount": "4"
     },
     {
        "agent_id": "A01",
        "amount": "2"
     },
   
]