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: |

With the “Bear Market Screaming Therapy Group,” we’ve now transcended language. Today, we will address Telegram channels and how to use them for maximum benefit. Ng Man-ho, a 27-year-old computer technician, was convicted last month of seven counts of incitement charges after he made use of the 100,000-member Chinese-language channel that he runs and manages to post "seditious messages," which had been shut down since August 2020. Telegram users themselves will be able to flag and report potentially false content. Activate up to 20 bots
from us


Telegram Data Science. SQL hub
FROM American