sql >> Database >  >> RDS >> Mysql

Sommatiequery met de functie groupBy() in laravel

Ervan uitgaande dat uw tabelnaam transactions is , en de kolommen en gegevens zoals in uw voorbeeldtabel - De SQL-query zou zijn

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

In laravel zou je het schrijven als

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

U kunt uw WHERE-voorwaarden en wat u maar wilt aan de query toevoegen. Maar als u meer kolommen uit de tabel moet selecteren, moet u deze ook toevoegen aan de groupBy() clausule. Iets als transactions.* zal waarschijnlijk niet werken vanwege ONLY_FULL_GROUP_BY modus. Maar het slaat waarschijnlijk ook nergens op.



  1. Postgres gegevenstype cast

  2. SQL-tracering, 10046-gebeurtenis in Oracle:trcsess, tkprof-hulpprogramma

  3. MySQL-ronde datum naar het begin van de week en maand

  4. Voeg tekenreeksen toe tussen enkele aanhalingstekens in SQLite-queryresultaten