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

Consulta de suma usando la función groupBy () en laravel

Suponiendo que el nombre de su tabla sea transactions , y las columnas y datos como en su tabla de muestra:la consulta SQL sería

SELECT Name, SUM(Amount) as Amount, Date
FROM transactions
GROUP BY Name, Date

En laravel lo escribirías como

$data = DB::table('transactions')                
    ->select('Name', DB::raw('SUM(Amount) as Amount'), 'Date')
    ->groupBy('Name', 'Date')
    ->get();

Puede agregar sus condiciones DONDE y lo que necesite a la consulta. Pero si necesita seleccionar más columnas de la tabla, también deberá agregarlas a groupBy() cláusula. Algo así como transactions.* probablemente no funcionará debido a ONLY_FULL_GROUP_BY modo. Pero probablemente tampoco tenga sentido.