Вы можете запросить CTE и взять среднее значение:
WITH cte AS (
select to_char(sale_date,'Mon') as mon, count (*) as "Sales"
from sales
where to_char(sale_date,'yyyy-mm-dd') between '2018-10-01' and '2018-12-01'
group by 1
)
SELECT AVG(Sales)
FROM cte;
Обратите внимание, что в идеале вы должны группировать по году и месяцу, поскольку данный месяц может принадлежать более чем одному году.Если вы хотите сохранить текущий запрос, но включить среднее значение за все месяцы, вы можете попробовать:
select
to_char(sale_date,'Mon') as mon,
extract(year from sale_date) as year,
count (*) as "Sales",
avg(count(*)) over () "AvgSales"
from sales
where to_char(sale_date,'yyyy-mm-dd') between '2018-10-01' and '2018-12-01'
group by 1, 2;