0

我在一张表中有三列(代码、代码 alt 和产品)。代码列有重复数据。我想保留所有结果而不重复代码列。我试试这个

 Select code, code alt, product from table
 where code in 
  (
     select code from table
     group by code 
     having count (code)=1
     )

但不会出现所有结果。

谢谢

4

1 回答 1

0

如果您只想保留一行具有相同代码的行中的特定代码,则需要确定要离开多行中的哪一行。

您需要一些标准,您可以通过这些标准对具有相同代码的行进行排名,并通过更高(例如)排名值从中选择一个。下面的脚本将只留下一个带有特定代码的随机行。

这只是一个示例,向您展示了这个想法,它适用于 SQL Server - 因为您没有指出您的 DBMS

with [src] as (
    select code, [code alt], product, rank() over(partition by code order by newid()) [rank]
    from [table])
select * from [src] where [rank] = 1

排名函数

于 2013-11-10T17:25:29.020 回答