Since you're using Oracle, you should be able to use AVG() as an analytic (window) function:
SELECT id, m_name AS "Mobile Name" cost AS Price, AVG(cost) OVER( ) AS Average
, cost - AVG(cost) OVER ( ) AS Difference
FROM mobile
No need for subqueries or GROUP BY.