2012-11-28 4 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.0을 가지고있다. 이 문제를 해결할 방법이 있습니까? – 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