Aangezien u Oracle gebruikt, zou u AVG() als analytische (venster)functie moeten kunnen gebruiken:
SELECT id, m_name AS "Mobile Name" cost AS Price, AVG(cost) OVER( ) AS Average
, cost - AVG(cost) OVER ( ) AS Difference
FROM mobile
Geen subquery's of GROUP BY nodig.