在3列上选择* with Distinct

时间:2015-04-02 15:53:40

标签: sql sql-server

我在我的表中有重复,我想选择但不是在所有12列上做一个select distinct我只想要3列不同。如果我在所有列上选择distinct,那么这3列仍然可以包含我不想要的重复项,因为其他一些列是不同的。

我希望看到所有列,但希望它仅在3上有所区别。

我已经尝试了这个小组,并且在解决方案中提出了一个问题,即这个应该是复制但是那些不起作用。无论出于什么原因,当我执行该组时它只执行查询,如果我包含表中的所有列,这不是我想要的因为我只希望3列不同。当我尝试时,“with c”就不会执行了。

2 个答案:

答案 0 :(得分:0)

尝试或类似的东西; 选择与col 1不同的地方               选择与col 2不同的地方                      选择与col 2不同

答案 1 :(得分:0)

使用row_number()

select t.*
from (select t.*, row_number() over (partition by col1, col2, col3
                                     order by (select null)) as seqnum
      from table t
     ) t
where seqnum = 1;

这将为三列的每个值组合选择一个不确定的行。