Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查找与多个州关联的邮政编码_Sql_Sql Server_Sql Server 2008 R2 - Fatal编程技术网

Sql 查找与多个州关联的邮政编码

Sql 查找与多个州关联的邮政编码,sql,sql-server,sql-server-2008-r2,Sql,Sql Server,Sql Server 2008 R2,我有一个数据库,其中包含5位数的邮政编码ie 10001和匹配的州缩写ie NJ,NY,CA。我发现一些邮政编码有多个州ie 10001=NJ和10001=NY,这是错误的 zip State 10001 NY 10001 NJ 10001 NY 10001 NY ... ... 每个州可以有多个邮政编码,但每个邮政编码只能有一个州 我想查找所有错误,但似乎无法编写查询

我有一个数据库,其中包含5位数的邮政编码ie 10001和匹配的州缩写ie NJ,NY,CA。我发现一些邮政编码有多个州ie 10001=NJ和10001=NY,这是错误的

   zip         State
 10001          NY
 10001          NJ
 10001          NY
 10001          NY
  ...           ...
每个州可以有多个邮政编码,但每个邮政编码只能有一个州

我想查找所有错误,但似乎无法编写查询来查找


有什么建议吗?

这将为您提供您需要的:

select zip,count(distinct state)
from TheTable
 group by zip
 having count(distinct state)>1

这将为您提供表中存在多个州的每个邮政编码的列表

一种不同的方法,但这不仅仅是给你一个计数,而是给你相关的状态

SELECT zip, state 
FROM dbo.table AS t
WHERE EXISTS 
(
  SELECT 1 FROM dbo.table 
  WHERE zip = t.zip AND state <> t.state
)
GROUP BY zip, state
ORDER BY zip, state;

一旦您识别并删除了重复项,请在zip上添加一个唯一的约束,说明您下周、下个月等不再执行此操作。

仅指出明显的问题:

由于邮政编码旨在实现高效的邮政递送,因此存在邮政编码跨越州界的不寻常情况,例如跨越多个州的军事设施或一个州的偏远地区最容易从相邻州获得服务。例如,邮政编码42223横跨肯塔基州克里斯蒂安和田纳西州蒙哥马利,邮政编码97635横跨加利福尼亚州奥多克湖和莫多克

请注意你所考虑的规范数据,并始终信任提供真实数据的人。 在这种情况下,0代表NJ,所以10001代表NJ是错误的,但00001代表NJ是准确的,1代表NY,所以00001代表NY是错误的,但10001代表NY是准确的。另见


另外值得注意的是,在上一个链接中有1000个邮政编码覆盖范围,您可以准确地确定哪些邮政编码超出了它们应该位于的范围/状态…

我实际上每天都在处理全国性的数据集,并且经常遇到这个问题。邮政编码前缀中的州标识符表示邮局所在的州,而不一定表示投递区的范围。我曾就美国中北部的一些问题与美国邮政总局的一些高层联系,他们告诉我,邮政编码计划最初旨在将邮政编码限制在州边界之内,但在80年代初,他们开始在农村地区破例。在一些情况下,北达科他州的一所房子离蒙大拿州的一家邮局有10英里远,但离他们所在州最近的邮局却在几个县之外。这就是为什么会有这些例外。它在地面层面上有意义,但在数据层面上没有意义。现在USPS数据库中有很多这样的例外情况。我发现最多产的地区是沿MT/ND和SD/ND边界。

您能澄清一下您的问题吗?您是只想识别与多个州关联的邮政编码,还是想识别与多个州关联的邮政编码并列出与之关联的州?我同意。这也是一个非常快速的移动目标——我不仅建议不要依赖用户输入的信息,或者甚至是从wiki或其他地方下载的一些数据源,但是如果你想让这些东西可靠,你应该考虑列出许多帮助验证和保持数据干净的服务,例如MelISSA数据。