Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête de sommation utilisant la fonction groupBy () dans laravel

En supposant que le nom de votre table est transactions , et les colonnes et les données comme dans votre exemple de table - La requête SQL serait

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

En laravel, vous l'écririez comme

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

Vous pouvez ajouter vos conditions WHERE et tout ce dont vous avez besoin à la requête. Mais si vous devez sélectionner plus de colonnes dans le tableau, vous devrez également les ajouter au groupBy() clause. Quelque chose comme transactions.* ne fonctionnera probablement pas à cause de ONLY_FULL_GROUP_BY mode. Mais cela n'a probablement pas non plus de sens.