Query with column data for a max
You can use DISTINCT ON:

select distinct on (native_name)
    'nil' as problem_type, native_name, event_date, count
from
    point_problem_history
where
    building_fk = 3
and
    problem_type = 'nil'
order by
    native_name, event_date desc ;


which does exactly what you want. Similar to GROUP BY, it will keep one row per distinct value of native_name but - differently that group by - you don't need to use max and min functions. The row selected will be the first according to order by event_date desc, so the maximum event date per native name.