SQLHUB Telegram 1952
🧠 Хитрая SQL-задача с подвохом: «Найди самого преданного клиента»

У тебя есть таблица 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👍76



tgoop.com/sqlhub/1952
Create:
Last Update:

🧠 Хитрая SQL-задача с подвохом: «Найди самого преданного клиента»

У тебя есть таблица 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

BY Data Science. SQL hub


Share with your friend now:
tgoop.com/sqlhub/1952

View MORE
Open in Telegram


Telegram News

Date: |

During the meeting with TSE Minister Edson Fachin, Perekopsky also mentioned the TSE channel on the platform as one of the firm's key success stories. Launched as part of the company's commitments to tackle the spread of fake news in Brazil, the verified channel has attracted more than 184,000 members in less than a month. Hashtags How to create a business channel on Telegram? (Tutorial) In 2018, Telegram’s audience reached 200 million people, with 500,000 new users joining the messenger every day. It was launched for iOS on 14 August 2013 and Android on 20 October 2013. Unlimited number of subscribers per channel
from us


Telegram Data Science. SQL hub
FROM American