declare avg NUMBER(8, 3); cursor custs is select MONTHS_BETWEEN(MAX(purch_date), MIN(purch_date)) as totalmonth, consumer_id from tranit_tran_item group by consumer_id; begin for cust in custs loop select ROUND(SUM(prc_paid_amt)/cust.totalmonth), 3) into avg from tranit_tran_item where consumer_id = cust.consumer_id; update customers set avgspend = avg where consumer_id = cust.consumer_id; end loop; end;