Una posible solución, para cada etapa daria los dias transcurridos entre el máximo y el mínimo.
Código PHP:
$sql = "SELECT to_days(diferencia) from (select etapa, date_sub(max(campo_fecha),min(campo_fecha)) diferencia from tabladatos group by etapa) tbl