Access SQL:基于多列条件从邮编驾车时间表提取唯一行
在Access SQL中获取邮编驾车时间数据的唯一行
嗨,针对你遇到的DTM表中往返邮编组合重复的问题,这里有个简单直接的解决方法:
核心思路是通过比较出发和到达邮编的大小,只保留出发邮编小于等于到达邮编的行,这样每个邮编组合只会出现一次(包括邮编自身的情况)。
实现的SQL代码
SELECT FROM_ZIP, TO_Zip, [Drivetime(min)], [Distance(mtr)] FROM DTM WHERE FROM_ZIP <= TO_Zip;
代码解释
WHERE FROM_ZIP <= TO_Zip是关键条件:- 对于像
1011→1012这样的正向组合,1011 <= 1012满足条件,会被保留; - 对应的反向组合
1012→1011因为1012 > 1011,会被过滤掉; - 邮编自身的行(比如
1011→1011)因为两者相等,满足<=条件,会正常保留。
- 对于像
这个方法的前提是你的反向行数据(时长、距离)和正向行完全一致,从你给出的示例数据来看是符合这个情况的。如果有数据不一致的特殊场景,可能需要先做数据校验,但这个方案在大多数情况下都能完美解决你的需求。
内容的提问来源于stack exchange,提问作者Beek
相关产品推荐
相关产品推荐

