私は、クエリの
->wherein('course_id', $array)
部分に明確なcourse_idsを戻すには、このクエリのためのいくつかの方法が必要です。完了したコースの合計数を取得しますが、ユーザーがコースを複数回完了した場合、合計に向かって数えられます。だから、何人の生徒がコースをやったのか知りたいのであれば、その生徒が1回以上コースを修了した場合はその番号は消えます。
public function report_count(){
$array = \Session::get('course_report')['course'];
return $this->hasOne('Tracking', 'roster_id')
->selectRaw('roster_id, count(*) as aggregate')
->where('status', 1)
->wherein('course_id', $array)
->groupBy('roster_id');
最後にgroupBy( 'course_id')を追加しようとしましたが、動作しません。
この統計はcronジョブで生成できますか? –
これはメモリの問題ですか?タイムアウトの問題?クエリをチャンクしたり、cronで事前処理したりできます。デバッグバーを使用してクエリの内容を確認していますか? – Blake
最初にメモリに問題があります。私は記憶を上げ、今は時間がかかると信じています。私たちはすでに多くのcronジョブを持っていますが、シニア・デベロッパーにチェックして、それらを事前実行するためのアイデアがあるかどうか確認できます。私はデバッグバーを使用している、名簿のためのクエリは、それはn + 1これらの関係のそれぞれのクエリを吐き出す。私は熱心にクエリを読み込もうとしましたが、完了した各コースの値を0に変更するだけです。 –