Вы можете использовать функцию TRUNC для усечения даты в первый день недели. Есть несколько способов определения недели. Например, если вы хотите, чтобы первый день недели был в понедельник, вы можете IW форматировать, например:
select trunc(date, 'IW') week, sum(amount)
from YourTable
group by trunc(date, 'IW');
Вы также можете использовать TO_CHAR как ответ "@Vignesh Kumer".
Дело в том, что вы должны усекать дату на той же неделе в одно значение. Тогда группа по значению. Что это.
Ответ 3
Думаю, это тоже помогло бы...
/* Weekly sum of values */
SELECT SUM( Amount ) as Sum_Amt,
DATEPART (wk, Date) as WeekNum
FROM databse_name.table_name
GROUP BY DATEPART (wk, Date)
ORDER BY WeekNum
/* Monthly sum of values */
SELECT SUM( Amount ) as Sum_Amt,
DATEPART (mm, Date) as MonNum
FROM databse_name.table_name
GROUP BY DATEPART (mm, Date)
ORDER BY MonNum