我对具有多个连接的大量大表(行和列)进行了查询,但是其中一个表有一些重复的数据行,导致我的查询出现问题。由于这是来自另一个部门的只读实时提要,因此我无法修复该数据,但是我试图防止我的查询出现问题。
鉴于此,我需要将此废话数据作为左连接添加到我的良好查询中。数据集如下所示:
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
...
(大约 2 打列和 100K 行)
我的第一直觉是执行一个 distinct 给我大约 80K 行:
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 是一个文本字段,虽然具有相同的值,但它与导致问题的其他数据不同。