我有一个数据库表,其中包含针对玩家的点数。单个玩家在表格中有多个记录。我需要通过player_id对记录进行分组。我试图获得每组的前3条记录的平均值。我试着在最后一个晚上达到这个目的。但我没有任何运气可以解决这个问题。
这是我的初始代码,我需要修改它以获取每组的前3条记录的AVG(按player_id分组)
dictEnum
先谢谢你
答案 0 :(得分:0)
试试这个:
$oSelect = DB::table('statistics')
->select(DB::raw('id, AVG(statistics.points) as points,player_id,scheduled'))
->where('statistics.league_id', $league_id)
->orderBy('statistics.scheduled','DESC')
->groupBy('statistics.player_id')->limit(3)->get();
注意:如果您遇到非聚合列错误,则必须将id列添加到按列分组列表或禁用mySql中的only_full_group_by选项