Percentage calculation with case not working as expected
Quick-n-dirty dual/CTE solution:

-- sum up the fico groups

with fico_groups as
(select   fundingyear,
          case  when fico &lt;  620                 then '0-619'
                when fico &gt;= 620 and fico &lt;= 679 then '620-679'
                when fico &gt;= 680 and fico &lt;= 719 then '680-719'
                when fico &gt;= 720                 then '720+'
          end as fico_txt,
          count(fico) as count_fico
 from     fico_scores
 group by fundingyear,
          case  when fico &lt;  620                 then '0-619'
                when fico &gt;= 620 and fico &lt;= 679 then '620-679'
                when fico &gt;= 680 and fico &lt;= 719 then '680-719'
                when fico &gt;= 720                 then '720+'
          end
),

-- get the yearly totals

fico_totals as
(select   fundingyear,
          sum(count_fico) as fico_total
 from     fico_groups
 group by fundingyear
)

-- final result set

select fg.fundingyear,
       fg.fico_txt                           as fico,
       fg.count_fico,
       (fg.count_fico *1.0 / ft.fico_total)  as fico_perc

from   fico_groups fg,
       fico_totals ft

where  fg.fundingyear = ft.fundingyear

order by fg.fundingyear, fg.fico_txt


Result set (based on sample data provided by OP):

fundingyear   fico      count_fico  fico_perc
2017          0-619     1           0,076923076923
2017          620-679   4           0,307692307692
2017          680-719   4           0,307692307692
2017          720+      4           0,307692307692
2018          0-619     1           0,090909090909
2018          620-679   2           0,181818181818
2018          680-719   3           0,272727272727
2018          720+      5           0,454545454545


Here's a db fiddle of the above.