2012-11-28 74 views
2

任何人都可以請指導我爲以下方案編寫MySQL查詢。用於分組數據的MySQL查詢

在表中的數據是這樣的,

Table Name: user 

user_id  country  city   age 
---------------------------------------------- 
1   India  Mumbai   22 
2   India  Mumbai   22 
3   India  Delhi   22 
4   India  Delhi   23 
5   India  Chennai   23 
6   China  Beijing   20 
7   China  Beijing   20 
8   China  Shanghai  20 
9   USA   New York  30 
10   USA   New York  30 
11   USA   New York  30 
12   USA   Los Angeles  31 
13   USA   Los Angeles  31 
14   USA   Los Angeles  40 

我想結果是這樣基本上是在特定國家的城市有同年齡的所有用戶的總和。

country  city   age  age_count 
---------------------------------------------- 
India  Mumbai   22   2 
India  Delhi   22   1 
India  Delhi   23   1 
India  Chennai   23   1 
China  Beijing   20   2 
China  Shanghai  20   1 
USA   New York  30   3 
USA   Los Angeles  31   2 
USA   Los Angeles  40   1 

回答

3

試試這個:

SELECT country, 
     city, 
     age, 
     count(user_id) AS age_count 
FROM user 
GROUP BY country, 
     city, 
     round(age) 
+0

這確實奏效。謝謝。 – Wh0RU

+0

您不可多得 –

+0

如果年齡有一些差異,有22個其他的有22個。任何方式來解決這個問題? – Wh0RU

3
select country, city, age, count(*) age_count 
from user 
group by country, city, age 
+0

爲什麼是-1?我看起來不錯... –

+0

其他人正在玩評級。你的查詢只比Sashi Kant的查詢慢一點。 正在獲取10000行, 您的查詢:603.99秒 Sashi Kant查詢:586.27秒 – Wh0RU