【问题标题】:Laravel grouped sumLaravel 分组总和
【发布时间】:2014-07-03 02:30:54
【问题描述】:

我正在尝试使用 Laravel 重现以下 MySQL 查询:

SELECT SUM(distance) FROM trips WHERE user_id = 1 AND distance IS NOT NULL GROUP BY TRANSPORT

当我在 phpMyAdmin 中执行它时,我得到以下结果:642778, 0, 1。这是我对 Laravel 的尝试:

$sortedDistances = Trip::where('user_id', 1)
    ->whereNotNull('distance')
    ->groupBy('transport')
    ->sum('distance');

当我var_dump($sortedDistances) 时,我得到的只是string(6) "642778"。为什么这不是一个数组?

【问题讨论】:

  • 无需提供 whereNotNull('distance') as sum(null)=0
  • 是的,但是通过跳过空行不是快了几分之一毫秒吗? ;)

标签: php mysql laravel


【解决方案1】:

这应该会给你一个数组。

$sortedDistances = Trip::where('user_id', 1)
    ->whereNotNull('distance')
    ->select('transport', DB::raw('sum(distance) as TotalDistance'))
    ->groupBy('transport')
    ->get();

【讨论】:

  • 谢谢,确实如此。我想我刚刚发现了使用 ORM 的一个限制……
猜你喜欢
  • 2021-03-08
  • 1970-01-01
  • 1970-01-01
  • 2021-11-17
  • 1970-01-01
  • 2019-05-06
  • 1970-01-01
  • 1970-01-01
  • 2017-02-06
相关资源
最近更新 更多