2017-09-27 14 views
1

J'ai une table avec deux variables qui se produisent plusieurs fois, chacun, pour l'apparition de chacun:base conditionnelle SELECT COUNT

-à-dire

Customer  City 
Bob    New York 
Bob    Denver 
Bob    Denver 
Greg   Denver 
Greg   Denver 
Greg   New York 

Exemple:

SELECT Customer FROM tableName WHERE COUNT(SELECT Customer,City FROM tableName)=1; 

Je veux pour obtenir des villes uniques pour chaque nom de client unique et comptez combien de villes ce client a. Comment faites-vous cela dans mysql?

+1

utiliser 'group by' et compter. –

Répondre

0

Je ne sais pas si vous voulez obtenir les répétitions d'une ville pour chaque client ou le nombre total de villes différentes donc je m va mettre les deux valeurs:

select Customer, City, count(City) as CityCount, TotalDistinctCities 
from CustomerCities 
join (select Customer as cust, count(distinct City) as TotalDistinctCities 
    from CustomerCities 
    group by Customer) 
as CityCount on cust=Customer 
group by Customer, City, TotalDistinctCities 
1

Vous pouvez utiliser le distinct modifié dans votre count appel:

SELECT customer, COUNT(DISTINCT city) 
FROM  tablename 
GROUP BY customer