ORACLE 11g - Вывести данные с определенной суммой а течение семи дней

На ORACLE 11g есть таблица transactions (транзакция), пример:

CREATE TABLE transactions (id, sender_name, transaction_date, amount) AS
SELECT '1111', 'Alice', TIMESTAMP '2023-01-03 01:26:29', 700 FROM DUAL UNION ALL
SELECT '2222', 'Alice', TIMESTAMP '2023-01-05 04:26:29', 450 FROM DUAL UNION ALL
SELECT '3333', 'Alice', TIMESTAMP '2023-01-08 18:26:29', 1000 FROM DUAL UNION ALL
SELECT '4444', 'Alice', TIMESTAMP '2023-01-09 04:26:29', 200 FROM DUAL UNION ALL

SELECT '6666', 'Betty', TIMESTAMP '2023-03-12 15:26:29', 845 FROM DUAL UNION ALL
SELECT '7777', 'Betty', TIMESTAMP '2023-03-19 11:00:29', 300 FROM DUAL UNION ALL
  
SELECT '9999', 'Carol', TIMESTAMP '2023-08-26 01:26:29', 200 FROM DUAL UNION ALL
SELECT '8888', 'Carol', TIMESTAMP '2023-08-29 02:26:29', 700 FROM DUAL UNION ALL
SELECT '1234', 'Carol', TIMESTAMP '2023-09-10 03:26:29',  500 FROM DUAL UNION ALL
SELECT '4567', 'Carol', TIMESTAMP '2023-09-11 08:26:29',  501 FROM DUAL UNION ALL
SELECT '2345', 'Carol', TIMESTAMP '2023-09-17 04:26:29', 1001 FROM DUAL UNION ALL
SELECT '3456', 'Carol', TIMESTAMP '2023-09-30 05:26:29', 100 FROM DUAL UNION ALL
SELECT '5678', 'Carol', TIMESTAMP '2023-10-01 05:26:29', 100 FROM DUAL;

Прошу прощения за такое, но мне нужна два варианта выборки данных:)))

  1. Вариант Надо вывести транзакции клиента (sender_name) которого в общем сумме отправил денег более (amount) > 1000 в течение семи дней после первой отправки. В этом случае результат должен быть: все транзакции Alice потому что первый платеж 03.01 и в течение семи дней по 09.01 и у нее сумма транзакции в течение эти дней более 1000. И все транзакции Betty тоже логика такая. А у Carol результат должен быть транзакции 10.09, 11.09 и 17.09 тоже такая логика.

  2. Вариант Можно ли определить начало недели (начиная с Понедельника) и вывести транзакции клиента осуществляемые в течение недели (с Понедельника по Воскресение) с общей суммой amount более 1000? Если да, то так можно делать.


Ответы (0 шт):