2009-07-21 78 views
4

我有一個名爲ZipCode的sql server 2005表,它包含所有美國郵政編碼。對於每個條目,它列出郵編,縣,城市,州和其他幾個細節。SQL查詢來計算並列出每個郵政編碼的不同縣

一些郵編跨越多個城市,有些甚至跨越多個縣。結果,一些郵編在表格中出現很多次。

我想查詢表格,看看哪些郵編跨越多個縣。

這是我到目前爲止有:

select 
    zipcode, 
    count(zipcode) as total, 
    county, 
    state 
from 
    zipcode 
group by 
    zipcode, 
    county, 
    state 
order by 
    zipcode 

19248個記錄在結果集中,這裏有返回的第一個幾個記錄:

zipcode total county state 
00501 2 SUFFOLK NY 
00544 2 SUFFOLK NY 
00801 3 SAINT THOMAS VI 
00802 3 SAINT THOMAS VI 
00803 3 SAINT THOMAS VI 
00804 3 SAINT THOMAS VI 
00805 1 SAINT THOMAS VI 
00820 2 SAINT CROIX VI 
00821 1 SAINT CROIX VI 
00822 1 SAINT CROIX VI 
00823 2 SAINT CROIX VI 
00824 2 SAINT CROIX VI 

在這個特殊的例子,每個拉鍊帶總共有兩個或兩個以上碰巧不止一次出現在表格中,這是因爲「cityaliasname」(未顯示)或其他一列不同。但我只想知道哪些拉鍊不止一次,因爲縣列有所不同。

我發佈之前發現這個和我發現了很多關於計數記錄的問題,但我無法弄清楚如何將它們應用於我的問題。如果已經有一個問題的答案適用於這個問題,請原諒我。

回答

6
SELECT 
    zipcode, 
    COUNT(DISTINCT county) 
FROM 
    zipcode 
GROUP BY 
    zipcode 
HAVING 
    COUNT(DISTINCT county) > 1 
+0

你想`統計(不同的縣)` – SquareCog 2009-07-21 16:56:17

+0

我驗證了這個查詢是通過對照城市字段檢查的。然而,我的數據顯然沒有包含多個縣的郵政編碼,儘管該消息來源說它已經做到了!好吧!不過謝謝您的幫助。 – Chris 2009-07-21 18:34:38

-1

SELECT郵政編碼,計數(縣) FROM表 GROUP BY郵編

1

需要注意的是2005年的ZIP表將是相當過時,因爲這檔包月的USPS更新。大多數ZIP表格都是從USPS城市狀態文件派生而來的,該文件僅列出每個五位ZIP的PREDOMINANT縣。 USPS ZIP + 4數據庫將識別所有共享多個ZIP的縣。截至2010年5月,42,068郵編(超過23%)中有9,944個跨越縣界。

http://semaphorecorp.com是當前USPS數據的便宜來源。