0
我有一个数据库表,其中包含针对玩家的点数。单个玩家在表格中有多个记录。我需要通过player_id对记录进行分组。我试图获得每组的前3条记录的平均值。我在最后一个晚上试图达到这个目标。但我没有任何运气来解决这个问题。Laravel如何获得来自每个组的前3条记录的AVG值
这是我最初的代码,我需要修改此得到的第一个3个记录每个组(由player_id分组)
$oSelect = DB::table('statistics')
->where('statistics.league_id', $league_id)
->select('id, AVG('statistics.points as points'),player_id, scheduled')
->orderBy('statistics.scheduled','DESC')
->groupBy('statistics.player_id');
谢谢你在先进
外貌,你误会我的问题。我想要的不是限制整个数据集,而是限制每个组。 (获得每个玩家的前3条记录并获得AVG) –
对此我很抱歉,但是您的示例代码不正确,并且根据您的要求过于简单。但我可以说使用Laravel DB Facade来解决这个复杂的问题可能会弄乱你的代码,并且不合逻辑。所以我建议你使用存储过程,并简单地从你的代码端调用函数。如果您想知道如何限制每个组的记录,请查看此页面: –
https://stackoverflow.com/questions/12113699/get-top-n-records-for-each-group-of-grouped-results –