Используйте переменную Min без группировки по, при группировке по идентификатору - PullRequest
0 голосов
/ 07 сентября 2018

Предположим, у меня есть эта таблица:

id ¦ value ¦ idRelation
------------------------
1  ¦ 1     ¦ 1234
1  ¦ 2     ¦ 1345
1  ¦ 3     ¦ 1456
2  ¦ 1     ¦ 8524
2  ¦ 2     ¦ 6547
3  ¦ 1     ¦ 9852
4  ¦ 2     ¦ 4569
4  ¦ 3     ¦ 4985

Мне нужно использовать min для группировки значений по идентификатору, чтобы я мог получить идентификатор отношения.

В основном мне нужен следующий результат

id ¦ value ¦ idRelation
------------------------
1  ¦ 1     ¦ 1234
2  ¦ 1     ¦ 8524
3  ¦ 1     ¦ 9852
4  ¦ 2     ¦ 4569

До сих пор я пытался использовать WITH TIES, но проблема в том, что мне нужен минимум каждой группы идентификаторов, а не только 1.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Это должно сделать работу:

SELECT id, value,idRelation FROM
  (SELECT *,ROW_NUMBER() OVER (PARTITION BY id ORDER BY value) N FROM table) T
WHERE N=1
0 голосов
/ 07 сентября 2018

Другой вариант - использовать функцию row_number() с связями предложение:

select top (1) with ties t.*
from table t
order by row_number() over (partition by id order by value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...