WITH avg_mass AS (
SELECT island, AVG(body_mass_g) AS avg_body_mass
FROM penguins
WHERE body_mass_g != 'NaN'
GROUP BY island
)
SELECT p.species, p.island,
p.body_mass_g, avg_mass.avg_body_mass,
p.body_mass_g - avg_mass.avg_body_mass AS difference
FROM penguins AS p
JOIN avg_mass ON p.island = avg_mass.island
WHERE p.body_mass_g != 'NaN'