lundi 11 octobre 2021

Laravel Query: How to groupBy DB:raw queries

I'm currently working on user_score table where I need to display all the users score data like number of attempts, avg score, etc. I need to display the data by quiz id and I'm having problems on getting the number of attempts. as you can see below I have two data or two attempts now i want to group them and count as 2 attempts. Is there a way to group them since I used DB:raw and when I used groupby it's not working. Can anyone help me, thank you!

Sample image of the query response

Here is my code:

$remarks = DB::table('user_scores')->where('quiz_id',$id)
->Join('quiz_information','quiz_information.id', '=', 'quiz_id')
->rightJoin('users','users.id', '=', 'user_id')
->select(DB::raw('COUNT(user_scores.user_id) as Attempts'),'quiz_information.quiz_title AS Quiz Title','total_points AS Points','number_of_correct_answers',
    'users.name AS Name',DB::raw('if(remarks=1,"passed","failed") as STATUS'), DB::raw("AVG(number_of_correct_answers) AS Average"),
    'user_scores.created_at AS Date and Time') 
// ->select('quiz_information.quiz_title AS Quiz Title','total_points AS Points','number_of_correct_answers',
// 'users.name AS Name','remarks as STATUS', 'user_scores.created_at AS Date and Time')
->groupBy('quiz_title','total_points','number_of_correct_answers','name','remarks','user_scores.created_at')
->get()
->toArray();


return response(['message'=>"Remarks successfuly shown", 
'error'=>false,
'error code'=>200,
'line'=>"line".__LINE__."".basename(__LINE__),
'quizRemarks'=>$remarks],200,[],JSON_NUMERIC_CHECK);
}


from Newest questions tagged laravel-5 - Stack Overflow https://ift.tt/3mBz4Hc
via IFTTT

Aucun commentaire:

Enregistrer un commentaire