В этом модуле
Задания для самостоятельной работы
Эти задания помогут закрепить теорию. Выполнять их необязательно, но очень желательно — только практика делает знание настоящим. Задания для самостоятельной работы не проверяются, но вы можете обсуждать их с опытными знакомыми и коллегами, а также в закрытом сообществе в Slack.
Для начала установите IDE для работы с базой данных — сделать это можно по ссылке: https://dbeaver.io.
Теперь подключитесь к учебной базе данных: Базы данных → Новое соединение → PostgreSQL. Если в процессе вам предложат установить драйвер, соглашайтесь.
Введите следующие данные:
- Хост — rc1b-cgstuyxqibsalbga.mdb.yandexcloud.net
- Порт — 6432
- База данных — productsense
- Пользователь — user
- Пароль — analytics
Нажмике OK.
Перед вами снова данные по недвижимости — только уже не в Google-таблице и поля называются по-английски. Например, вместо «тип дома (ID)», используется house_type_id. Все нужные вам таблички имеют префикс moscow_aparments. Вы можете использовать следующие таблицы:
- moscow_apartments
- moscow_apartments_districts
- moscow_apartments_house_type
- moscow_apartments_marketplace
Главная табличка — moscow_apartments, остальные таблицы — словари (справочники).
Вопросы, на которые вам нужно ответить:
- Сколько всего записей в табличке moscow_apartments?
- Сколько объявлений с квартирами, площадь которых больше 60 квадратов?
- Какой самый непопулярный этаж у квартир в объявлениях? Если таких этажей несколько, назовите все.
- В каких типах домов средняя стоимость квартиры выше?
- У скольких объявлений нет информации о сайте, на котром они выставлены?
- Какой наибольший и наименьший размер квартиры в Южном округе?
Напоследок — два сложных вопроса. Чтобы ответить на них, придется самостоятельно прокачаться в SQL и использовать команды, которые мы не проходили на занятиях. Подсказка: посмотрите, что такое case when и как его применить, а тажке что такое подвопросы.
- На сколько процентов различается средняя стоимость квартиры у объявлений без информации о сайте и объявлений с информацией о сайте?
- Какая площадь у квартиры с наименьшей стоимостью?
Несколько подсказок по всем заданиям:
- На первые 4 вопроса можно ответить без JOIN.
- 5 вопрос — на проверку NULL-значений.
- На 6 вопросе необходимо использовать JOIN, а на 7 — LEFT JOIN.
Объединение таблиц
Если у нас ИТ-продукт, то в нем будут очень простые связи. Например, служба доставка: есть заказ, у заказа есть точно заказчик, курьер, адрес. И все эти таблички обычно находятся в разных местах: отдельная таблица для пользователей, отдельная — для заказов, отдельная — про курьеров, ритейлеров, адреса. Все это разные таблицы, но чтобы получить аналитические данные, их необходимо каким-то образом совмещать. Для этого используется соединение таблиц.
Чтобы объединять таблицы, нужен общий ключ — значение, которое идентично в каждой из соединяемых таблиц.
Оператор join стоит на третьем месте — например, до оператора where, который фильтрует данные. Примеры применения оператора join: