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

Consulta de soma usando a função groupBy () em laravel


Supondo que o nome da sua tabela seja transactions , e as colunas e dados como em sua tabela de amostra - A consulta SQL seria
SELECT Name, SUM(Amount) as Amount, Date
FROM transactions
GROUP BY Name, Date

Em laravel você escreveria como
$data = DB::table('transactions')                
    ->select('Name', DB::raw('SUM(Amount) as Amount'), 'Date')
    ->groupBy('Name', 'Date')
    ->get();

Você pode adicionar suas condições WHERE e o que precisar à consulta. Mas se você precisar selecionar mais colunas da tabela, também precisará adicioná-las ao groupBy() cláusula. Algo como transactions.* provavelmente não funcionará devido a ONLY_FULL_GROUP_BY modo. Mas também provavelmente não faz sentido.