避免一栏重复

Avoiding Repetition from one column

我有一个table

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

我希望得到的结果是

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"

我已经尝试了独特的但没有得到想要的结果。

您可以使用子查询进行过滤。假设每个 sidfirst 记录是具有最小 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

用row_number()window函数:

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