Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Summenabfrage mit der Funktion groupBy() in Laravel

Angenommen, Ihr Tabellenname ist transactions , und die Spalten und Daten wie in Ihrer Beispieltabelle - Die SQL-Abfrage wäre

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

In Laravel würdest du es als

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

Sie können Ihre WHERE-Bedingungen und alles, was Sie brauchen, zur Abfrage hinzufügen. Wenn Sie jedoch weitere Spalten aus der Tabelle auswählen müssen, müssen Sie diese auch zu groupBy() hinzufügen Klausel. Etwas wie transactions.* wird wahrscheinlich wegen ONLY_FULL_GROUP_BY nicht funktionieren Modus. Aber es macht wahrscheinlich auch keinen Sinn.