Как избежать повторения из одной колонки - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть таблица

sid id  rNum    str      power  con1  rc
15  287 6       Grit     0      0    225
15  288 7       Short    0      0    225
15  289 8       Grade    0      0    225
16  224 3       Mega     0      1    222
17  432 7       Server   0      0    656

У меня будет sh, чтобы иметь результат как

sid id  rNum    str      power  con1  rc
15  287 6       Grit     0      0    225
16  224 3       Mega     0      1    222
17  432 7       Server   0      0    656

Это означает, что я хочу показать уникальный "sid" с самым первым значением из группа

Я попробовал отчетливый, но не получаемый результат.

Ответы [ 2 ]

2 голосов
/ 27 апреля 2020

Вы можете фильтровать с помощью подзапроса. Предполагая, что первая запись на sid является записью с наименьшим id, это будет:

select t.*
from myable t
where t.id= (select min(r1.id) from mytable t1 where t1.sid = t.sid)

В качестве альтернативы, вы также можете использовать row_number():

select *
from (
    select t.*, row_number() over(partition by sid order by id) rn
    from mytable t
) t
where rn = 1
1 голос
/ 27 апреля 2020

С оконной функцией row_number ():

select t.sid, t.id, t.rNum, t.str, t.power, t.con1, t.rc
from (
  select *, row_number() over (partition by sid order by id) rn
  from tablename
) t
where t.rn = 1
...