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 –