SQL query to count and list the different counties per zip code

Posted by Chris on Stack Overflow See other posts from Stack Overflow or by Chris
Published on 2009-07-21T16:40:44Z Indexed on 2010/06/05 21:22 UTC
Read the original article Hit count: 638

Filed under:

I have a sql server 2005 table called ZipCode, which has all the US ZIPs in it. For each entry, it lists the zip, county, city, state, and several other details.

Some zipcodes span multiple cities and some even span multiple counties. As a result, some zipcodes appear many times in the table.

I am trying to query the table to see which zipcodes go across multiple counties.

This is what I have so far:

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

Of 19248 records in the result set, here are the first several records returned:

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

In this particular example, each zip with a total of two or more happens to be in the table more than once, and it's because the "cityaliasname" (not shown) or some other column differs. But I just want to know which zips are in there more than once because the county column differs.

I searched before posting this and I found many questions about counting records but I could not figure out how to apply them to my problem. Please forgive me if there is already a question whose answer applies to this question.

© Stack Overflow or respective owner

Related posts about sql-server-2005