TGViewer
Data Science. SQL hub Data Science. SQL hub @sqlhub · 36K subscribers
Post #356 2.61K
🖥 SQL Задачи.

--На входе у нас есть таблица
DECLARE @pays TABLE (
client_id int --Идентификатор клиента
,date datetime --Дата и время платежа
,pay_sum decimal(19,2) --Сумма платежа
)


-- Заполняем таблицу тестовыми данными

INSERT INTO @pays VALUES (1, '2022-01-01T16:11:11', 10)
INSERT INTO @pays VALUES (2, '2022-01-01T16:12:12', 20)
INSERT INTO @pays VALUES (3, '2022-01-01T16:13:13', 30)
INSERT INTO @pays VALUES (5, '2022-02-01T16:14:14', 50)
INSERT INTO @pays VALUES (3, '2022-02-01T16:15:15', 35)



Напишите запрос, который выбирал бы все данные из таблицы с добавлением 2 полей:
- сумма платежа нарастающим итогом
- количество записей выше текущей для записей с тем же идентификатором клиента
При этом записи упорядочиваются сначала по дате, потом по идентификатору клиента.


SELECT select_1.client_id, select_1.date, select_1.pay_sum, sm, cnt
FROM
(SELECT a.client_id, a.date, a.pay_sum, SUM(b.pay_sum) sm
FROM @pays a
LEFT OUTER JOIN @pays b
ON a.date >= b.date
GROUP BY a.client_id, a.date, a.pay_sum) select_1
INNER JOIN
(SELECT a.client_id, a.date, a.pay_sum, count(c.client_id) cnt
FROM @pays a
LEFT OUTER JOIN @pays c
on a.client_id = c.client_id
AND a.date > c.date
GROUP BY a.client_id, a.date, a.pay_sum,c.client_id) select_2
ON select_1.client_id = select_2.client_id
AND select_1.date = select_2.date
AND select_1.pay_sum = select_2.pay_sum
ORDER BY select_1.date, select_1.client_id


@sqlhub
  • 👍 9
  • ❤ 3
  • 🔥 2
More from @sqlhub
  1. Oct 8, 2026🧮 Математика для ИИ на русском: от школьной базы до трансформеров и диффузии Бесплатный к…
  2. Oct 8, 2026🧩 SQL-задача: почему `LAG()` здесь подведёт? Есть интервалы работы сервера. Время указано…
  3. Oct 8, 2026ИИ-агент отвечает настолько точно, насколько готовы ваши данные. Как понять, что они готов…
  4. Oct 7, 2026🌍 SQL-задача: ближайшие точки на замкнутой карте Карта 100 × 100: противоположные края со…
  5. Oct 7, 2026ИИ-агент, который только отвечает на вопросы, — это уже прошлый этап. Следующий шаг — науч…
  6. Oct 6, 2026⚡️ SQL с подвохом: NULL в пустом списке Что выведет PostgreSQL? SELECT NULL IN (SELECT 1 W…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →