По всем вопросам- @workakkk
@itchannels_telegram - 🔥лучшие ит-каналы
@ai_machinelearning_big_data - Machine learning
@pythonl - Python
@pythonlbooks- python книги📚
@datascienceiot - ml книги📚
РКН: https://vk.cc/cIi9vo
#VRHSZ
Post #1952
4.51K
🧠 Хитрая SQL-задача с подвохом: «Найди самого преданного клиента»
У тебя есть таблица
Задача: Найти user_id пользователя, который совершал покупки в каждый календарный месяц хотя бы один раз за последние 2 года.
Но есть подвох:
пользователь должен был купить в каждый месяц (например, март 2024, апрель 2024, ..., июль 2025 — всего 24 месяца)
пропуски даже в одном месяце — дисквалификация
использовать GROUP BY, FILTER, GENERATE_SERIES, LEFT JOIN и другие техники разрешено
📌 Подумай:
- как сгенерировать список всех нужных месяцев?
- как сопоставить их с месяцами, в которых были покупки у каждого пользователя?
- как убедиться, что пользователь не пропустил ни одного?
🧩 Подсказка: решение можно построить с generate_series() по месяцам и LEFT JOIN к сгруппированным user_id + month.
@sqlhub
У тебя есть таблица
purchases со следующей структурой:
purchases (
id SERIAL PRIMARY KEY,
user_id INT,
item_id INT,
amount DECIMAL,
purchase_date DATE
)
Задача: Найти user_id пользователя, который совершал покупки в каждый календарный месяц хотя бы один раз за последние 2 года.
Но есть подвох:
пользователь должен был купить в каждый месяц (например, март 2024, апрель 2024, ..., июль 2025 — всего 24 месяца)
пропуски даже в одном месяце — дисквалификация
использовать GROUP BY, FILTER, GENERATE_SERIES, LEFT JOIN и другие техники разрешено
📌 Подумай:
- как сгенерировать список всех нужных месяцев?
- как сопоставить их с месяцами, в которых были покупки у каждого пользователя?
- как убедиться, что пользователь не пропустил ни одного?
🧩 Подсказка: решение можно построить с generate_series() по месяцам и LEFT JOIN к сгруппированным user_id + month.
@sqlhub
- 🔥 10
- 👍 7
- ❤ 6


















