У меня есть запрос, который я использовал некоторое время, однако у меня есть новый сценарий, который я не знаю, как обработать. Приведенный ниже запрос извлекает средние цены из таблицы, называемой доступными. У меня сейчас проблема в том, что данные, содержащиеся в этой таблице, могут быть получены из одного из двух источников. Поэтому я добавил поле источника в таблицу.
Проблема в том, что один или оба из этих источников для любой записи могут быть пустыми, что нормально, или они могут содержать данные для той же записи (что является моей проблемой). Записи, как правило, уникальны, за исключением новых альтернативных источников.
IE
Room Date Price Source
27 2010-02-28 $27.99 1
27 2010-02-28 $25.99 2
Мне нужен один экземпляр, чтобы запрос извлекал только первый источник и игнорировал второй, но только если они оба существуют.
SELECT
rooms.id,
name,
ppl,
private AS exclusive,
MIN(spots) AS spots,
AVG(availables.price) AS price FROM "rooms"
INNER JOIN
"availables" ON availables.room_id = rooms.id
WHERE
(("rooms".hostel_id = 6933) AND
(rooms.active IS true AND bookdate BETWEEN '2011-02-20' AND '2011-02-22'))
GROUP BY
rooms.id, name, ppl, private ORDER BY price