Запрос Laravel: Как группировать БД:необработанные запросы

#database #laravel-5 #eloquent #laravel-query-builder

Вопрос:

В настоящее время я работаю над таблицей user_score, в которой мне нужно отобразить все данные о результатах пользователей, такие как количество попыток, средний балл и т. Д. Мне нужно отобразить данные по идентификатору викторины, и у меня возникли проблемы с определением количества попыток. как вы можете видеть ниже, у меня есть два данных или две попытки, теперь я хочу сгруппировать их и считать 2 попытки. Есть ли способ сгруппировать их, так как я использовал DB:raw, и когда я использовал groupby, это не работает. Кто-нибудь может мне помочь, спасибо!

Примерное изображение ответа на запрос

Вот мой код:

 $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);
}
 

Комментарии:

1. Почему вы использовали несколько плиток dbraw

2. Тогда вы должны группироваться только по quiz_title : ->groupBy('quiz_title')