Есть 3 таблицы с данными.
таблица payments
-id_client
-time_payment
-amt_payment
Таблица client_info
-id_client
-gender
-age
-id_city
Таблица client_geo
-id_city
-name_city
-name_region
Напишите запросы SQL, которые выводят: Ограничьтесь клиентами из федеральных округов Южный и Северный. Для каждого города рассчитайте, сколько в среднем времени проходит между платежами одного клиента.
sql
SELECT DISTINCT ci.id_city, cg.name_city, cg.name_region
FROM client_info ci
JOIN client_geo cg ON ci.id_city = cg.id_city
WHERE cg.name_region IN ('Южный', 'Северный')
Здесь мы выбираем уникальные идентификаторы городов, а также их названия и названия соответствующих регионов из таблицы client_info, объединяем эту таблицу с таблицей client_geo по полю id_city и ограничиваем выборку только записями, где значение поля name_region равно либо "Южный", либо "Северный".
Запрос 2:
sql
SELECT ci.id_city, cg.name_city, AVG(p.time_payment - LAG(p.time_payment) OVER (PARTITION BY ci.id_client ORDER BY p.time_payment)) AS avg_time_between_payments
FROM client_info ci
JOIN payments p ON ci.id_client = p.id_client
JOIN client_geo cg ON ci.id_city = cg.id_city
WHERE cg.name_region IN ('Южный', 'Северный')
GROUP BY ci.id_city, cg.name_city
В этом запросе мы объединяем все три таблицы: client_info, payments и client_geo, чтобы получить доступ к данным о городах клиентов и платежах. Затем мы применяем оконную функцию LAG, чтобы получить разницу между временем текущего платежа и временем предыдущего платежа каждого клиента. Затем, с использованием функции AVG, мы рассчитываем среднее значение этой разницы для каждого города. Наконец, мы группируем результаты по идентификатору города и названию города.
В результате выполнения этих двух запросов вы получите список городов из федеральных округов "Южный" и "Северный", а также среднее время между платежами для каждого города.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет