Puisque vous utilisez Oracle, vous devriez pouvoir utiliser AVG() comme fonction analytique (fenêtre) :
SELECT id, m_name AS "Mobile Name" cost AS Price, AVG(cost) OVER( ) AS Average
, cost - AVG(cost) OVER ( ) AS Difference
FROM mobile
Pas besoin de sous-requêtes ou de GROUP BY.