В соответствии со стандартом DISTINCT для двух полей как раз работает, не будет выведено ни одной строки, в которой повторяется сочетание addr_st и id_st. Если же вам нужна уникальность именно по полю addr_st и у вас PostgreSQL, то вам повезло, в этой СУБД есть инструкция
DISTINCT ON. Ну, а если другая СУБД, то придётся городить костыли из группировок и агрегаций. Например
select min(id_st), addr_st from station group by addr_st order by id_st;