sql >> Base de Datos >  >> RDS >> Mysql

Laravel eloquent query builder - Suma con grupo en relación

En el SQL generado, debe seleccionar la columna por la que agrupa y debe llamar a get() después de groupBy o de lo contrario estarías llamando al groupBy en la colección, no en el objeto del generador de consultas. Entonces deberías poder hacer:

Transaction::selectRaw('transactionType.category, sum(amount) as amount')
->with('transactionType')
->groupBy('transactionType.category')
->get();

O menos elocuente

DB::table('transaction')
->join(
    'transaction_type',
    'transaction_type.id',
    '=',
    'transaction.transaction_type_id'
)->selectRaw('transationType.category, sum(amount)')
->groupBy('transactionTyle.category')
->get();