Back to questions
Т-Банк
Senior
6
SQL задача повышенной сложности: вывести для каждого клиента ID платежа, ID клиента, количество дней от первого платежа
Companies where asked
Answer from AI
sobes.tech AI
Для решения задачи нужно для каждого клиента определить дату первого платежа, а затем для каждого платежа вычислить разницу в днях от этой даты. Пример на SQL (предполагается таблица payments с колонками payment_id, client_id, payment_date):
SELECT
p.payment_id,
p.client_id,
DATEDIFF(p.payment_date, first_pay.first_payment_date) AS days_from_first_payment
FROM
payments p
JOIN
(SELECT client_id, MIN(payment_date) AS first_payment_date
FROM payments
GROUP BY client_id) first_pay
ON p.client_id = first_pay.client_id;
Здесь подзапрос находит первый платеж каждого клиента, а основной запрос вычисляет количество дней между текущим платежом и первым.