按一列重复分组,但显示另一列

时间:2015-05-14 15:27:43

标签: sql sql-server tsql

我有这张表中的数据:

id  | name
--------------------
265 | crazy row
265 | "crazy row" LTD
273 | simple 
273 | simple & co
273 | "microsoft" corporation
273 | microsoft
284 | oracle
284 | some another

我想删除具有相同 ID 的行,但仍显示名称列。

所以结果应该是这样的:

id  | name
--------------------
265 | crazy row
273 | simple 
284 | oracle

显示哪个名称值无关紧要:首先[疯狂排]或最后[“疯狂排”LTD。)

我写过一些东西,但当然是错的

 SELECT 
    l.[id], [name]
 FROM 
    [list] l
 JOIN 
    (SELECT [id]
     FROM [list]
     GROUP BY [id]
     HAVING COUNT(*) > 1) x ON l.id = x.id  

编辑:我的表中有正常的行(不是重复的)。我的目的是找到重复项并显示单个名称,这是因为在我的sql代码中我首先找到重复项

1 个答案:

答案 0 :(得分:3)

你在这里

select ID, max(name ) from [list] l
group by id