- これらの隠された秘密についてのトーク!!!
laravelフレームワークは、統計収集のユーザー数を書くために、我々は、使用する予定のGROUPBY +のCOUNTは(+重複排除統計)達成され、プラスGROUPBYは再び後COUNT、数はのないアウトカウントされます。+クエリデータは、最終的には、繰り返しのソリューションをテストされています。
間違ったクエリ❌
Model::whereIn('course_id',$course_ids)->groupBy('uid')->count();
データパケット、最初のパケットの数:パケットによってGROUPBY後、次いでカウント()関数の戻りを行います。
正しいクエリ✔️
Model::whereIn('course_id',$course_ids)->groupBy('uid')->get()->count();
// 或
Model::whereIn('course_id',$course_ids)->count(DB::raw('DISTINCT(uid)')));
// 或
conut(Model::whereIn('course_id',$course_ids)->groupBy('uid')->pluck('uid')->toArray());
個別のキーワード
デフォルトのMySQLのクエリは重複する行を含むすべての行、ために表示されます。
重複行とディスプレイの値の独自のリストを排除するためにMySQLのDISTINCTキーワードで句を選択します。
高効率DISTINCTとGROUP BYもの?
DISTINCT操作は、それだけですべての異なる値を見つける必要があります。GROUP BY操作は、他の集計関数のワークに用意されなければなりません。仕事をするよりも、操作BY作業GROUP、この時点からより明確であることを行うべきです。
しかし実際には、GROUP BY、より効率的なポイント、なぜ?グループと複数のレコードの数が実際にはるかに少ない存在する以上である読まれるべきレコードをグループ化GROUP BYの数と同数の一方DISTINCT操作のために、それは、すべてのレコードを読み出します。
結論
今日ここで共有し、私たちは収穫を見ているだろうと考えています。
秘密が掘り起こされ隠されている人たちが、お互いを奨励してみましょう!