2010-07-22 6 views
2

J'ai une table de code postal. Je veux regarder à travers cette table et trouver tous les codes postaux qui s'y trouvent deux fois. La table contient une clé primaire (zipcode_rid). Comment ferais-je cela?Former une requête pour trouver les codes postaux en double

En outre, je suis conscient qu'il existe des codes postaux officiels multi-états/villes/comtés. C'est ce que je souhaite trouver.

Ma structure de table est comme ceci:

  • zipcode_rid (int, unique, clé primaire)
  • code postal (int)
  • ville (varchar (50))
  • état (varchar (50))
  • comté (varchar (50))

Le logiciel de base de données que je utilise est S ql Server 2008 Express

+0

Remarque: les codes postaux ne sont pas strictement intégraux. Ils ont des zéros importants et vous ne tenez évidemment pas compte de ZIP + 4, ce qui peut retarder la livraison du courrier. En outre, ce format rend votre logiciel uniquement US. –

+0

Notez que cette critique intervient parce que j'ai vu l'USPS envoyer des colis prioritaires du mauvais côté du pays en raison d'un nom de rue mal orthographié avec seulement 5 chiffres ZIP, tandis que le même nom de rue mal orthographié avec ZIP + 4 correct fait à l'heure directement à la bonne adresse. –

+0

@Nathan Il est plus pour "où vivez-vous à" des fins que "nous vous envoyons des choses par la poste" donc c'est vraiment hors de propos. – Earlz

Répondre

6

Voici une requête qui vous donne tous les codes postaux qui se produisent dans la table deux fois. Vous pouvez changer la partie "= 2" pour qu'elle soit "> 1" ou quoi que ce soit. J'ai inclus le COUNT() là parce que si vous utilisez "> 1" vous pouvez voir exactement combien de fois il apparaît.

SELECT 
    COUNT(zipcode_rid) AS No_of_Zipcodes 
    ,zipcode 
FROM 
    Zipcodes 
GROUP BY 
    zipcode 
HAVING 
    COUNT(zipcode_rid) = 2 
+0

S'il y a plus de deux doublons, le code postal ne sera pas affiché si vous utilisez 'HAVING COUNT (..) = 2' –

+0

@OMG Ponies - Sa question a demandé de voir les codes postaux qui sont apparus là-bas deux fois. J'ai également ajouté l'info sur "> 1" pour voir ceux qui apparaissent ici deux fois, ou plus de deux fois. –

+0

Vous avez tous les deux raison, mais @OMG n'incluait pas la sélection 'count', ce qui fait que c'est marginalement meilleur .. plus j'aime donner des rep aux mecs avec <20k de rep :) – Earlz

9

Pour obtenir une liste des codes postaux avec les doublons, utilisez:

SELECT t.zipcode 
    FROM TABLE t 
GROUP BY t.zipcode 
    HAVING COUNT(t.zipcode) > 1 
Questions connexes