8
votes

Sélectionnez Compte / Duplicates

J'ai une table avec tous les codes postaux américains. Chaque ligne contient la ville et le nom d'état du code postal. J'essaie d'obtenir une liste de villes qui apparaissent dans plusieurs états. Ce ne serait pas un problème s'il n'y avait pas x quantité de code postal dans la même ville ...

Si fondamentalement, je veux juste la ville dans un état pour compter 1 au lieu de compter la ville / l'état 7 fois parce qu'il y a plus de 2 codes postaux dans cette ville / État ...

Je ne suis pas vraiment sûr comment faire cela. Je sais que j'ai besoin d'utiliser le comte, mais comment puis-je dire à la MySQL de compter seulement un combo de ville / état donné comme 1?


0 commentaires

5 Réponses :


0
votes

Essayez d'utiliser un Select distinct

SELECT DISTINCT city, state FROM table GROUP BY city


0 commentaires

2
votes

Cela fera-t-il le truc xxx


0 commentaires

0
votes

Vous auriez probablement dû créer une table séparée pour les codes postaux, puis pour éviter la duplication.

Vous voulez regarder dans le Groupe par agrégat .


0 commentaires

11
votes
SELECT City, Count(City) As theCount
FROM (Select City, State From tblCityStateZips Group By City, State) As C
GROUP By City
HAVING COUNT Count(City) > 1
This would return all cities, with count, that were contained in more than one state.Greenville        39
Greenwood          2
GreenBriar         3
etc.

0 commentaires

4
votes

premier groupe sur l'état et la ville, puis groupez le résultat sur la ville: xxx


2 commentaires

C'était presque ça! Il suffit de changer la première ligne à: sélectionnez la ville, compte (ville) comme c


@Mike: Vous vouliez donc combien d'états chaque ville se présente également? Ce n'était pas dans la question, donc je ne l'ai pas inclus dans la réponse.