質問: User::selectRaw( 'users.*, COUNT( message.id ) AS count' ) ->join( 'message', 'users.id', '=', 'message.user_id' ) ->orderBy( 'count', 'DESC' ) ->groupBy( 'message.id' ) ->groupBy( 'users.id' ) ->paginate( 5 ); ``` が近しい結果になるのと思うのですが、 実行すると、message の数だけ、同じusers.id の列が出てきてしまい、うまく取得することができません。 users.id で、グループ化しているので、予想する結果と異なるので、よけいよくわかりません。 ご存知の方いらっしゃいましたら、よろしくお願いいたさいます。
回答: ``` ->groupBy( 'message.id' ) ``` この部分が原因ではないかと。 `message.id`でもグループ化してしまっているので、集計ができていないと思います