@evgeniy1982

Как сделать выборку по нескольким таблицам в одном запросе sql?

всем привет у меня есть такая вот задача (Нужно отсортировать заведения по рейтингу из их отзывов, если заведение является сетью (например Макдональдс) то нужно считать его рейтингом среднее арифметическое рейтингов его филиалов, если заведение является филиалом его не нужно выводить, так как его рейтинг входит в рейтинг сети, если у заведения нет review то его рейтингом будет 0,

Для сетей нужно считать именно среднее арифметическое рейтингов филиалов а не среднее арифметическое рейтингов review всех филиалов,
если у филиала ко-во review будет не чётным такой подсчет будет не верным) . Подскажите пожалуйста в каком направлении мне нужно двигаться потому как я новичок в sql запросах и такой запрос для меня на этом этапе проблема.Буду благодарен за любую помощь.
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 1
rozhnev
@rozhnev Куратор тега SQL
Fullstack programmer, DBA, медленно, дорого
SELECT 
	chains.name,
	ROUND(AVG(rate), 2) avg_rate
FROM Establishment
JOIN Review ON Review.establishment_id = Establishment.id
JOIN Rate ON Rate.review_id = Review.id
JOIN Establishment chains ON chains.id = COALESCE(Establishment.chain_id, Establishment.id)
GROUP BY chains.name
ORDER BY avg_rate DESC
;


SQL fiddle live
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы