2012-04-18 70 views
0
SELECT respid, cq4_1, dma 
INTO #preweighting_data_dma 
FROM #preweighting_data a 
LEFT OUTER JOIN #us_zip b 
ON trim(a.cq4_1) = trim(b.zip_code); 
+0

你想知道你为什么得到重复,或者你想知道如何防止重复? – 2012-04-18 14:57:23

+0

因为表preweighting_data中有重复记录a?因为'a JOIN b'中有多个结果? – Konerak 2012-04-18 14:58:08

+0

否preweighting_data中没有重复的数据a。连接条件后,我得到重复。 – 2012-04-18 17:28:27

回答

2

您正在获取重复项,因为多个行符合您的条件。

为了防止重复使用DISTINCT关键字:

SELECT DISTINCT respid, cq4_1, dma 
etc... 
+0

我想知道为什么我得到重复?请澄清更多。在#preweighting_data表中有唯一的数据。 – 2012-04-18 17:19:24

+0

@kuldeepdabral由于数据中存在重复项,并且您在查询中没有执行任何操作以消除重复项 – 2017-01-25 17:44:53

0

如果你没有以前那么preweighting_data复制唯一的其他机会时,该列us_zip.zip_code包含一些重复。

您可以使用此查询检查:

select trim(zip_code), count(*) 
from us_zip 
group by trim(zip_code) 
having count(*) > 1 

如果发现重复这种方式,那么“LEFT JOIN”“传播”,然后到你的新表。

相关问题