@proger_10

SQL DISTINST для двух колонок?

Ребята, не смог найти решение: у меня есть таблица station в ней 2 поля, id_st и addr_st.
Нужно вывести строки из поля addr_st, так, чтобы одинаковые не встречались, но при этом хорошо бы получить еще и id_st, оно мне нужно будет, когда я буду использовать данный запрос на сайте в выпадающем списке.
Как я понимаю, запрос должен быть примерно такой:
SELECT DISTINCT addr_st, id_st FROM station;

но вот только distinct для двух полей не работает, что делать?
  • Вопрос задан
  • 2642 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега SQL
Седой и строгий
В соответствии со стандартом 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;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы