Группировать по - получать только группы с X строками - PullRequest
1 голос
/ 21 июня 2020

Я хочу получить book_ids для книг, у которых есть > X reviews и group, чтобы получить рейтинг average для этой книги.

SELECT book_id, avg(rating) FROM `bookReviews` group by book_id` (where group count > 5)

1 Ответ

2 голосов
/ 21 июня 2020

Это запрос

SELECT book_id, AVG(rating) as average
FROM bookReviews
GROUP BY book_id
HAVING count(*) > 5;

Это построитель запросов;

return DB::table('bookReviews')
        ->select('book_id', DB::raw('AVG(rating) as average'))
        ->groupBy('book_id')
        ->having(DB::raw('count(*)'), '>', 5)
        ->get();
...