我有这个表:表1
请注意,有些id具有IsTop=1的双记录如果我有这种场景,我有兴趣选择IsTop=1的场景,如果我不感兴趣保留IsTop=0的场景。
目标是具有不同的Id,但如果存在,则取IsTop=1。
我该怎么做?
您可以使用row_number()
:
select t.*
from (select t.*,
row_number() over (partition by id order by isTop desc) as seqnum
from t
) t
where seqnum = 1;