我有一张桌子
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”,并显示组中的第一个值
我已经尝试了独特但未得到期望的结果。
您可以使用子查询进行过滤。假设每个sid
的first记录是具有最小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()窗口功能:
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