각 우편 번호에 대한 이러한 차이점을 요약하면 다음 최대 및 최소 범위의 각 행과의 차이를 가지고가는 경우에, 당신은 식별 할 수있을 것입니다 우편 번호에 전체 범위가 없습니다. 그 차이의 합은 틈이없는 zip의 경우 10,000이며 틈이있는 zip의 경우 10,000 이하가됩니다.
SELECT zip, SUM(maxRangeZip4-minRangeZip4+1)
FROM zips
GROUP BY zip
HAVING SUM(maxRangeZip4-minRangeZip4+1) <> 10000
다음은 데이터 설정이 SQL Fiddle 인 예입니다. 나는 이것을 SQL Server 2008에서 테스트했으며 다른 데이터베이스 버전에서도 작동 할 것입니다.
참고 : maxRangeZip4와 minRangeZip4의 차이를 고려할 때 코드 개수가 최소값을 포함해야하므로 1을 더해야합니다. 당신에게 우편은 항상 0으로 시작하면 우편 번호가 항상 0
SELECT zip, SUM(maxzip)-SUM(minzip)+MIN(minzip)+COUNT(*)-1-MAX(maxzip) AS missing
FROM ranges
GROUP BY zip
HAVING missing <> 0
이 시작되지 않습니다 가정 간격을 참아 줄 것이 쿼리를 간단한 수학을 사용
동일한 Zip 값을 가진 행 수에 제한이 있습니까? –
아니요 저는 40 개의 다른 우편 번호가있는 우편 번호가 있습니다. 각 우편 번호마다 다른 세율이 있습니다. – user2683873