【发布时间】:2020-12-29 08:14:51
【问题描述】:
我有一个有趣的问题。
我继承了一个草率的数据库,其中包含一个包含重复行的表。但是,由于一列(文本列),它们不是完全重复的。
这是一个例子:
TestID TestDescription Cost
115893hc127aaq Etiology • Understand the causes of acute pancreatitis $10
115893hc127aaq Etiology • Understand the causes of acute pancreatitis $10
115893hc127aaq Etiology • Understand the causes of acute pancreatitis $10
您可以看到除“TestDescription”之外的所有数据都是相同的。
有 1000 行这样的行,其中可能有 2 或 3 行重复的行,在“TestDescription”中存在较小的间距或拼写问题
因此,使用 DISTINCT 将不起作用。
我想选择所有行,但只为每个 TestID 获取一行...让我们说第一行,然后忽略其余行。
我试过 SELECT DISTINCT *
但我无法使用 DISTINCT 执行此操作,因为 TestDescription 包含行之间的细微差异。
SELECT DISTINCT TestID 有效,但只返回 TestID,我需要查看所有列。
有没有办法在 Sql Server 2012 中做到这一点?
谢谢!
【问题讨论】:
标签: sql-server tsql sql-server-2012 duplicates greatest-n-per-group