开发者

Filter results in select

select * from table

name1  4 o
name1  5 x
name1  3 x
name2  3 x
name3  2 x

I开发者_JAVA技巧 have above results in that name1 have values 3,4 and 5 I want to get the result as below where where the flag 'O' has been taken in case of multiple values for same name.here it is name1

name1  4 o
name2  3 x
name3  2 x

Please help!


You could use row_number to select the lowest value of the ox column, like:

select  *
from    (
        select  *
        ,       row_number() over (partition by name order by ox asc) as rn
        from    YourTable
        ) as SubQueryAlias
where   rn = 1

The subquery is required because you can't use row_number directly in a where clause.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜