如何根据值选择具有首选项的不同记录



我有这个表:表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;

最新更新