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 ... p>
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 ... P>
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? P>
5 Réponses :
Essayez d'utiliser un Select distinct
SELECT DISTINCT city, state FROM table GROUP BY city
Cela fera-t-il le truc
Vous auriez probablement dû créer une table séparée pour les codes postaux, puis pour éviter la duplication. P>
Vous voulez regarder dans le Groupe par agrégat . p>
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.
premier groupe sur l'état et la ville, puis groupez le résultat sur la ville:
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.