2012-04-18 73 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」「傳播」,然後到你的新表。

相關問題