Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL:消除在一列中有一个重复值的行_Sql_Sql Server 2008 - Fatal编程技术网

SQL:消除在一列中有一个重复值的行

SQL:消除在一列中有一个重复值的行,sql,sql-server-2008,Sql,Sql Server 2008,我有一个表,在一列中可能包含重复的值。对于该列中的每个不同值,我只需要选择索引最小的行。我尝试了许多distinct()min()和group by的组合,但没有找到这个组合。此查询将在sql server 2008上运行 color | index | user_id | organization_code blue 44 xxx yyy blue 66 xxx yyy red

我有一个表,在一列中可能包含重复的值。对于该列中的每个不同值,我只需要选择索引最小的行。我尝试了许多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

不要将
索引
等关键字用作列名。使用窗口功能解决您的问题,请参见下面的示例

 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

“一列”、“那列”。。。我猜你在这里指的是
color
,或者
user\u id
或者
organization\u code
——你是否愿意具体说明哪一列是“那一列”。很抱歉,混淆了,但你正确理解了我的意思。在我的示例中,“颜色”列包含感兴趣的副本。其他重复项是仓促键入的结果。关键字提示+1。将添加
user\u id
也是一个不好的列名,因为它是函数名。@1\r或者如果您必须使用保留的关键字,请将其括在方括号中,如[index]