0

我有一个表,其中一列中可能包含重复值。对于该列中的每个不同值,我只需要选择索引最小的行。我尝试了 distinct() min() 和 group by 的许多组合,但无法弄清楚这一点。此查询将在 sql server 2008 上运行。

color  |  index  |  user_id | organization_code
blue      44         xxx            yyy
blue      66         xxx            yyy
red       12         aaa            bbb
white     55         ccc            ddd
white     68         xxx            yyy

该查询将返回第一、第三和第四行。

blue      44         xxx            yyy
red       12         aaa            bbb
white     55         ccc            ddd
4

1 回答 1

2

不要使用诸如index列名之类的关键字。为您的问题使用窗口函数,请参见下面的示例

 select color, [index], [USER_ID], organization_code from (
select *, ROW_NUMBER() over (partition by color order by [index]) as ranker from table
) Z where ranker = 1
于 2013-06-26T14:46:38.657 回答