Display two digits after decimal point in SQL from average value
Switch your AVG and CAST. Instead of

SELECT AVG( cast(`page_rate` as decimal(10,2)))


Use

SELECT CAST(AVG(`page_rate`) as decimal(10,2))


Then you are casting your average with 2 decimal places.