2012-10-13 2 views
2

을 생산하지 상태COUNT()는 내가 2 개 테이블이 원하는 출력

SELECT * 
FROM (SELECT state, COUNT(*) AS count FROM usstatecities) AS a, 
usstatescentroids b 
WHERE a.state = b.state 
GROUP BY state 

미국 내 한 도시와 전체 도시 수를 제공합니다. 각 주에있는 도시의 수와 각 주 중심의 좌표 (lon, lat)를 찾고 싶습니다.

수정 나는 국가를 바꿉니다. 나는 오래된 문장을 자르고 붙였다.

+1

당신이 당신의 질문에 일부 샘플 데이터를 추가 할 수 있습니까? – Gidil

+0

Hv 하위 쿼리의 결과를 확인한 적이 있습니까? –

답변

4
SELECT a.state, a.count, b.lon, b.lat 
FROM (SELECT State, COUNT(*) AS count FROM usStateCities GROUP BY State) a 
LEFT JOIN usstatescentroids b ON b.state = a.State 
2

나는 조인 테이블과 하위 쿼리를 사용하는 것을 선호합니다. 노호 시도 :

SELECT b.State, b.lon, b.lat, COUNT(*) AS count 
FROM usStateCities a, usstatescentroids b 
WHERE a.state = b.state 
GROUP BY b.State, b.lon, b.lat 
+1

암시 적 조인 사용을 권장하지 않습니다. 또한이 쿼리는 더 큰 데이터 집합에 참여할 때 더 오래 걸릴 것입니다. – Kermit