id1 id2 year State Gender
==== ====== ====== ===== =======
1 A 2008 ca M
1 B 2008 ca M
3 A 2009 ny F
3 A 2008 ny F
4 A 2009 tx F
select
state, gender, [year],
count (distinct(cast(id1 as varchar(10)) + id2))
from
tabl1
group by state, gender, [year]
Je pourrais trouver le nombre distinct par état. maintenant j'ai besoin de trouver distinct compte par ville sage. comme dans CA - 3 villes .. sfo, la, sanjose. J'ai une table de recherche que j'ai pu trouver l'état et la ville.Calculer nombre distinct lors de la jonction de deux tables
table2 - city
====
cityid name
==== ====
1 sfo
2 la
3 sanjose
table 3 - state
====
stateid name
==== ====
1 CA
2 Az
table 4 lookup state city
====
pk_cityId pk_state_id
1 1
2 1
select state,city,gender, [year],
count (distinct(cast(id1 as varchar(10)) + id2))
from
tabl1 p
group by state, gender, [year],city
cette requête pour trouver le nom de la ville et de l'état.
select c.city,s.state from city_state sc
inner join (select * from state)s on sc.state_id = s.state_id
inner join (select * from city)c on sc.city_id = c.city_id
je l'ai fait similaire à cette requête en utilisant la table de consultation, mais le problème est que je reçois le compte distinct dans tous les Etats et même pas de comptage répète pour chaque ville dans l'état. Ex: pour compter pour ca: 10, le nombre de villes devrait être comme La - 5, sanjose - 4, sfo - 1.
mais avec ma requête je reçois comme sfo - 10, la-10, sanjose-10 .. je ne pouvais pas trouver le compte pour le niveau inférieur. Toute aide serait appréciée.
MISE À JOUR: J'ai mis à jour la requête et les tables de recherche.
Las Vegas, CA? Uh-huh ... –
mon mauvais ... k je vais le changer. :) – jero
que signifie ID1 dans la toute première table? Est-ce la City ID? –