sql >> Databáze >  >> RDS >> Mysql

Sumační dotaz pomocí funkce groupBy() v laravel

Za předpokladu, že název vaší tabulky je transactions a sloupce a data jako ve vaší ukázkové tabulce - SQL dotaz by byl

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

V laravel byste to napsali jako

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

K dotazu můžete přidat své podmínky WHERE a cokoli, co potřebujete. Pokud ale potřebujete z tabulky vybrat více sloupců, budete je muset také přidat do groupBy() doložka. Něco jako transactions.* pravděpodobně nebude fungovat kvůli ONLY_FULL_GROUP_BY režimu. Ale také to asi nedává smysl.



  1. Rekurzivní dotaz v Oracle

  2. jak rozdělit tabulku podle sloupce datetime?

  3. MySQL:jak vybrat záznam s nejnovějším datem před určitým datem

  4. Jak určit, co je efektivnější:DISTINCT nebo WHERE EXISTS?