Mysql
 sql >> Database >  >> RDS >> Mysql

Query di sommatoria utilizzando la funzione groupBy() in laravel

Supponendo che il nome della tua tabella sia transactions e le colonne e i dati come nella tabella di esempio - La query SQL sarebbe

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

In laravel lo scriveresti come

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

Puoi aggiungere le tue condizioni WHERE e tutto ciò di cui hai bisogno alla query. Ma se devi selezionare più colonne dalla tabella, dovrai anche aggiungerle a groupBy() clausola. Qualcosa come transactions.* probabilmente non funzionerà a causa di ONLY_FULL_GROUP_BY modalità. Ma probabilmente non ha senso.