代码之家  ›  专栏  ›  技术社区  ›  mastrobirraio

在Eloquent中使用avg编写groupby记录

  •  1
  • mastrobirraio  · 技术社区  · 6 年前

    我有以下SQL查询: SELECT *, AVG(value) as avg FROM users_has_project GROUP BY project_id 我以以下方式进行了雄辩的翻译:

    Vote::select('AVG(value) as avg')->groupBy('project_id')->get();
    

    但我收到以下错误:

    SQLSTATE[42S22]:未找到列:中的1054未知列“AVG(value)” “字段列表”(SQL:选择 AVG(value) avg 从…起 users_has_project 分组依据 project_id )

    2 回复  |  直到 6 年前
        1
  •  3
  •   Brian Lee    6 年前

    尝试对聚合使用原始查询:

    Vote::selectRaw('AVG(value) as avg')->groupBy('project_id')->get();
    
        2
  •  1
  •   Muhammad Nauman    6 年前

    只是@DigitalDriver回答中的一个小增强:

    Vote::selectRaw('project_id, AVG(value) as avg')->groupBy('project_id')->get();