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]
我可以通過狀態查找不同的計數。 現在我需要通過明智的城市找到不同的計數。像CA - 3個城市.. sfo,la,sanjose。我有一個查找表,我可以找到狀態和城市。計算加入兩個表格時的不同計數
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
此查詢找到城市和州名稱。
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
我做類似這樣的查詢中使用的查找表,但問題是,我得到整個國家的重複計數和計數相同的,則重複在該州各城市。例如:對於ca:10的計數,城市的計數應該像La - 5,sanjose - 4,sfo-1。
但用我的查詢得到sfo - 10,la-10,sanjose-10 ..我無法找到較低級別的計數。任何幫助,將不勝感激。
更新: 我已更新查詢和查詢表。
拉斯維加斯,CA?嗯... – 2010-10-05 09:47:41
我的壞...我會改變它:) – jero 2010-10-05 16:54:06
ID1在第一個表中代表什麼?這是城市ID嗎? – 2010-10-05 18:45:37