SQL выбирает первые записи строк для конкретного столбца - PullRequest
3 голосов
/ 04 февраля 2011

Я понимаю, что мой заголовок, вероятно, не очень хорошо объясняет мою ситуацию, но я, честно говоря, понятия не имею, как это выразить.

Я использую SQL для доступа к базе данных DB2.

Использование моегоснимок экрана изображение 1 ниже в качестве ссылки:

столбец 1 содержит три экземпляра "U11124" с тремя различными описаниями (столбец 2)

Я хотел бы, чтобы этот запрос былвернуть первый экземпляр «U11124» и его описание, а затем и уникальные записи для других строк. изображение 2 показывает желаемый результат.

изображение 1

image1

изображение 2

image2

----- РЕДАКТИРОВАТЬ ----

, чтобы ответить на некоторые вопросы / сообщения: технически это не обязательно должно быть первымпросто любой из этих записей.проблема в том, что у нас есть три описания, и нужно показать только одно, теперь мне говорят, что не имеет значения, какое именно.

Ответы [ 4 ]

5 голосов
/ 04 февраля 2011
SELECT STVNST, MAX(STDESC) FROM MY_TABLE GROUP BY STVNST;
3 голосов
/ 04 февраля 2011

В SQL Server:

select stvnst, stdesc
from (
  select     
     stvnst, stdesc
     row_number() over (order by stdesc partition by stvnst) row
  from table
) a
where row = 1

Этот метод имеет преимущество перед простой группой в том, что он также будет работать, когда в таблице более двух столбцов.

2 голосов
/ 04 февраля 2011

SELECT STVNST,FIRST(STDESC) from table group by STVNST ЗАКАЗАТЬ what_you_want_first

1 голос
/ 04 февраля 2011

Все, что вам нужно сделать, это использовать GROUP BY.

Вы говорите, что хотите первый экземпляр столбца STDESC? Ну, вы не можете гарантировать порядок строк без другого столбца, однако если вы хотите упорядочить по наибольшему упорядоченному значению, будет достаточно следующего:

SELECT STVNST, MAX(STDESC) FROM MY_TABLE GROUP BY STVNST;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...