Laravel GROUP BY ごとに COUNT する方法

GROUP BY ごとに COUNT するときは生のSQLで SELECT文の中身を書いて COUNT(column_name) を指定しないといけない。

コード


use App\Models\Post;
use Illuminate\Support\Facades\DB;

// 略


// ユーザー毎の記事の件数(1件以上)
$user_posts_count = Post::select(DB::raw('user_id, COUNT(user_id) AS user_id_count'))
                            ->groupBy('user_id')
                            ->having('user_id_count', '>=', 1)
                            ->get();

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です