Во-первых, , пожалуйста не используйте ключевые слова Oracle (например, дата ) в качестве имен столбцов.Во-вторых, ваше описание того, как вы хотите рассчитать среднее значение, является неоднозначным, поэтому я включил несколько вариантов.
Я думаю, что это должно сработать, чтобы получить даты начала / окончания недели.
select
trunc("DATE", 'IW') as week,
min(trunc("DATE")) as week_start,
max(trunc("DATE")) as week_end,
(max(price_high) + min(price_low)) / 2 as avg_price_weekly,
avg(price_high+price_low) as avg_price_daily
from fp_basic_bd
where to_char("DATE", 'DY') not in ('SAT','SUN')
group by trunc("DATE", 'IW');
Из вашего описания, я предполагаю, что у вас нет дат субботы / воскресенья в этой таблице,Если вы это сделаете, и вы специально хотите исключить их из этого запроса, дайте мне знать, и я обновлю свой ответ.
Изменить: обновлено, чтобы исключить выходные дни (сб / вс).