This works for me using Oracle. What DBMS are you using?
The statement below creates a sample inline table that you can query against. I provided example code here that can be run as-is (self contained). You have to adapt it to match your own database schema:
WITH TEST_DATA AS (
SELECT 'ted' AS name, 1 as val FROM DUAL UNION ALL
SELECT 'ted' AS name, 2 as val FROM DUAL UNION ALL
SELECT 'ted' AS name, 3 as val FROM DUAL UNION ALL
SELECT 'sam' AS name, 5 as val FROM DUAL UNION ALL
SELECT 'sam' AS name, 10 as val FROM DUAL
)SELECT name, MIN(val) - MAX(val) as minmax
FROM TEST_DATA
GROUP BY name