Sobes.tech
Senior

Question SQL de difficulté avancée : afficher pour chaque client l'ID du paiement, l'ID du client, et le nombre de jours depuis le premier paiement

sobes.tech IA

Réponse de l'IA

Для решения задачи нужно для каждого клиента определить дату первого платежа, а затем для каждого платежа вычислить разницу в днях от этой даты. Пример на 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;

Здесь подзапрос находит первый платеж каждого клиента, а основной запрос вычисляет количество дней между текущим платежом и первым.