与Groupby相加

I was trying to find due of all row with a groupby

For that i have used following Query.

$due = DB::table('transactions')
      ->join('customers','transactions.customer_id','customers.id')
      ->whereYear('transactions.updated_at', '=', date('Y')) 
      ->where('customers.status','=',0) 
      ->groupBy('transactions.customer_id')
      ->sum('due'); 

But the result returns only first row. But if i used following query it returns exact result.

  $query3 = DB::table('transactions')
        ->join('customers','transactions.customer_id','customers.id')
        ->whereYear('transactions.updated_at', '=', date('Y')) 
        ->where('customers.status','=',0) 
        ->groupBy('transactions.customer_id')->get();

    $due = $query3->sum('due');

Why is that why can't we get sum with groupby?

try this code

$query3 = DB::table('transactions')
        ->join('customers','transactions.customer_id','customers.id')
        ->select(DB::raw("sum(due)as new_col ,column1 ,column3 ,column3"))
        ->whereYear('transactions.updated_at', '=', date('Y')) 
        ->where('customers.status','=',0) 
        ->groupBy('transactions.customer_id')->get();`

hope this will work