mercredi 26 juillet 2017

Laravel sql take top records and get it's field values average

how can I be able to get top records e.g top 10 top 5 top 3, I've tried to use AVG on my query but it returns the whole average of a persons record.

SQL

if( !$field ) {
    $select = [
        DB::raw('AVG(sFieldGoalsPercentage) AS sFieldGoalsPercentage'), 
        DB::raw('AVG(sThreePointersPercentage) AS sThreePointersPercentage'), 
        DB::raw('AVG(sTwoPointersPercentage) AS sTwoPointersPercentage')
    ];
}

$player1 = DB::table('person_match_statistics')
    ->where('competitionId', $competitionId)
    ->where('personId', $player1Id)
    ->where('periodNumber', 0)
    ->orderBy('matchId', 'DESC')
    ->select($select)
    ->take($lastGame)
    ->get();

Array

0 => {#543 ▼
  +"sFieldGoalsPercentage": 0.56
  +"sThreePointersPercentage": 0.5
  +"sTwoPointersPercentage": 0.63
}
1 => {#536 ▼
  +"sFieldGoalsPercentage": 0.4
  +"sThreePointersPercentage": 0.4
  +"sTwoPointersPercentage": 0.4
}
2 => {#539 ▼
  +"sFieldGoalsPercentage": 0.38
  +"sThreePointersPercentage": 0.2
  +"sTwoPointersPercentage": 0.67
}



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire