Вы можете преобразовать число в явную модель формата, которая учитывает знак валюты, затем получить среднее значение, а затем преобразовать обратно в строку:
select to_char(avg(
to_number(total, 'L999G999G999D99', 'NLS_NUMERIC_CHARACTERS=''.,'' NLS_CURRENCY=''$''')),
'L999G999G999D99', 'NLS_NUMERIC_CHARACTERS=''.,'' NLS_CURRENCY=''$''') as level_1
from fulldata;
LEVEL_1
-------------------------
$28.00
или более просто с фиксированной валютой и группой/ десятичные символы:
select to_char(avg(to_number(total, '$999,999,999.99')), '$999,999,999.99') as level_1
from fulldata;
LEVEL_1
----------------
$28.00
Если вы хотите получить данные за пять лет в среднем, отфильтруйте их;либо:
select to_char(avg(to_number(total, '$999,999,999.99')), '$999,999,999.99') as level_1
from fulldata
where year < extract(year from sysdate)
and year >= extract(year from sysdate) - 5;
LEVEL_1
----------------
$36.00
или
select to_char(avg(to_number(total, '$999,999,999.99')), '$999,999,999.99') as level_1
from fulldata
where year >= extract(year from sysdate) - 4;
LEVEL_1
----------------
$22.00
... в зависимости от того, хотите ли вы включить текущий год (т. е. 2014-2018 в первой версии или 2015-2019 ввторой).
дБ <> скрипка