Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Подскажите, пожалуйста, по SQL, схема баз данных во вложении.

Николай Светчиков Ученик (99), открыт 4 недели назад
Выведите идентификатор комнаты (поле room_id), среднюю стоимость за один день аренды (поле price, для вывода используйте псевдоним avg_price), а также количество резерваций этой комнаты (используйте псевдоним count). Полученный результат отсортируйте в порядке убывания сначала по количеству резерваций, а потом по средней стоимости.


Делаю запрос:
SELECT res.room _id,
COUNT(reservation_id) AS COUNT,
AVG (price) AS avg_price
FROM Reviews rev,
Reservations res
WHERE reservation_id = res.id
GROUP BY res.room _id
ORDER BY count desc,
avg_price

1 ответ
Алексей Пинчук Мудрец (16511) 4 недели назад
Судя по диагностике, не у всех комнат есть резервации, поэтому не все комнаты появляются в выдаче запроса.

Вызывает недоумение, почему запрос, выводящий информацию о комнатах, не использует таблицу Rooms. Ведь это основная таблица, от которой и надо отталкиваться, создавая запрос.
 SELECT r.id,
Avg(res.price) AS avg_price,
Count(res.id) AS count
FROM Rooms r LEFT JOIN Reservations res ON r.id = res.room_id
GROUP BY r.id
ORDER BY count DESC, avg_price DESC
Похожие вопросы