Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Construtor de consultas eloquentes do Laravel - Soma com grupo no relacionamento


No SQL gerado, você precisa selecionar a coluna pela qual agrupa e precisa chamar o get() após o groupBy ou então você estaria chamando o groupBy na coleção, não no objeto do construtor de consultas. Então você deve ser capaz de fazer:
Transaction::selectRaw('transactionType.category, sum(amount) as amount')
->with('transactionType')
->groupBy('transactionType.category')
->get();

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