我有一个针对大量大型表(行和列)以及大量联接的查询,但是其中一个表有一些重复的数据行,从而导致我的查询出现问题。因为这是来自另一个部门的只读实时提要,所以我无法修复这些数据,但是我试图防止我的查询出现问题。
鉴于此,我需要将这些垃圾数据作为左连接添加到我的好查询中。数据集看起来是这样的:
IDNo FirstName LastName ...
-------------------------------------------
uqx bob smith
abc john willis
ABC john willis
aBc john willis
WTF jeff bridges
sss bill doe
ere sally abby
wtf jeff bridges
...
(大约24列,100K 行)
我的第一反应是执行一个独特的给了我大约8万行:
SELECT DISTINCT P.IDNo
FROM people P
但是当我尝试以下方法时,我得到了所有的行:
SELECT DISTINCT P.*
FROM people P
或者
SELECT
DISTINCT(P.IDNo) AS IDNoUnq
,P.FirstName
,P.LastName
...etc.
FROM people P
然后,我想对所有列执行 FIRST ()聚合函数,但是这也感觉不对。从句法上来说,我是不是做错了什么?
更新: 只想说明一下: 这些记录是基于上面列出的 ID 的非键/非索引字段的重复记录。ID 是一个文本字段,虽然具有相同的值,但它与引起问题的其他数据的情况不同。