当前位置: 首页 > 知识库问答 >
问题:

如何从laravel获取db中的列的平均值

高修伟
2023-03-14

我的事务表有4列(其他与查询无关)

  • trans_id:整数,pk
  • user_id:整数,fk
  • 金额:双倍
  • bus_id:整数

我试图通过对amount列求平均值来获得他们的平均消费金额,但我的回答一直是“找不到”列。

  public function userDollarAverage(Request $request)
  {
    $business = $request->input('bus_id');
    $user = $request->input('user_id');
    $getAvgAmount = Transactions::whereColumn([
      ['user_id', '=', $user],
      ['bus_id', '=', $business]
      ])->avg('amount');
    return response()->json(['average' => $getAvgAmount]);
  }

我的迁徙

  Schema::create('Transactions', function (Blueprint $table) {
            $table->increments('transaction_id');
            $table->unsignedInteger('user_id');
            $table->foreign('user_id')->references('user_id')->on('users');
            $table->integer('bus_id')->nullable();
            $table->double('amount')->nullable();
        });

我路过

{
    "user_id": 51,
    "bus_id": 1
}

它们也都列在我的模型下protected$fillable = [];

但我还是有错误:

  • Illumb\Database\QueryException:SQLSTATE[42S22]:未找到列:“where子句”中的1054未知列“51”(SQL:选择平均值(amount)作为从事务where(用户id=51总线id=1)的聚合)在第664行的文件C:\Users\Jermayne\API\vendor\laravel\framework\src\illumb\Database\Connection.php中

共有1个答案

狄望
2023-03-14

whereColumn更改为where,您就可以上路了。

其中column用于将列相互比较。

 类似资料:
  • 问题内容: 我无法获得熊猫列的平均值或均值。有一个数据框。我在下面尝试的任何事情都没有给我该列的平均值 以下返回几个值,而不是一个: 这样: 问题答案: 如果您只想要列的均值,请选择列(这是一个系列),然后调用:

  • 问题内容: 我如何平均?我想找到的平均值,学生总数和的总数。例: 输入 :4 4 4 4 产出: 学生总数 :4 总GPA :16 平均GPA: 4 问题答案: 如果问题是您得到错误的答案,则原因是此循环: 大概您打算在用户输入负数时退出循环。这样做有问题,它将在总数和计数中包含负数。您可以这样重写循环: (其他解决方案也是可能的)。在代码的后面,您将需要防止第一个数字为负。如果发生这种情况,将为

  • 我正在拼命寻找解决熊猫问题的办法。也许你能帮我。 我正在寻找一个滚动平均值,考虑到之前的平均值。 df看起来像这样: 现在,使用函数我会得到如下结果: 我想从第一个计算中考虑平均值,如下所示: 哪里 提前谢谢你!

  • 我不能得到熊猫的平均值或平均值。有一个数据框。下面我尝试的东西都没有给我列的平均值 以下内容返回多个值,而不是一个值: 这也是:

  • 问题内容: 我有一个java.util.Date对象数组。我试图找到平均值。 例如,如果我有2个日期对象,分别是7:40 AM和7:50 AM。我应该获得7:45 AM的平均日期对象。 我正在考虑的方法效率低下: 用于遍历所有日期 找出0000与时间之间的时差 将时间差加到总计 除以总数 将该时间转换为日期对象 有更简单的功能可以做到这一点吗? 问题答案: 好的,从根本上讲,您可以将所有对象的“自

  • 问题内容: 假设我有下表 我想绘制这些值,但是由于我的真实表有成千上万个值,因此我考虑了获取每X行的平均值。我有什么办法可以做到这一点,即每2或4行,如下所示: 另外,是否有任何方法可以根据表中的总行数使此X值动态化?例如,如果我有1000行,则将基于每200行(1000/5)计算平均值,但是如果我有20行,则应基于每4行(20/5)计算平均值。 我知道如何以编程方式执行此操作,但是有什么方法可以