Фильтрация групп
Всем доброго времени суток, подскажите с задачей. Несколько суток бьюсь, но до конца не пойму как решить. Условие задачи: Выведите типы комнат (поле home_type) и разницу между самым дорогим и самым дешевым представителем данного типа. В итоговую выборку включите только те типы жилья, количество которых в таблице Rooms больше или равно 2. Для вывода разницы стоимости используйте псевдоним difference.
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
Чтобы найти разность между самым дорогим и дешёвым жильём данного типа, достаточно взять разность для результатов соответствуюющих агрегирующих функций.
Для проверки количества следует применить условие HAVING COUNT(*) после группировки.
SELECT home_type, MAX(price) - MIN(price) AS difference -- вывод разницы
FROM Rooms
GROUP BY home_type
HAVING COUNT(*) > 1 -- проверка, что количество данного типа жилья от 2 и выше
