나는 방문 테이블 (visit_table) 구조를 가지고 :MySQL - 다른 쿼리의 결과로 GROUP BY하는 방법?
- ID를
- IP_ 주소
- 타임 스탬프
및 IP에 대한 국가 이름 가진 테이블 (country_table가) 범위
- ID
- begin_IP IP 범위)
- end_IP (IP 범위의 단부)
- begin_num (begin_IP의 수치 적 등가, 즉 INET_ATON (begin_IP))
- END_NUM
- COUNTRY_CODE의 시작 (예를 들면 US)의 라인을 따라
- COUNTRY_NAME
(http://www.maxmind.com/app/csv 기준) 내가 MySQL은 5.0.67 사용하고 있습니다 및 국가 방문의 수를 반환하는 쿼리를 작성하고 싶습니다
, 그래서 뭔가 :
SELECT country.table.country_name,
count(distinct visit_table.IP_address)
FROM country_table, visit_table
WHERE country_name = (SELECT country_name
FROM country_table
WHERE INET_ATON(visits.IP_address) >= begin_num
AND INET_ATON(visits.IP_Address) <= end_num
LIMIT 0,1)
GROUP BY country_table.country_name
는 내가 뭔가를 잘못하고 있어요 확신하지만 해결 방법을 모른다 - 가입 또는 BY 문은 SELECT 또는 GROUP과 함께 일을하고 어떤 종류의? 어떤 포인터를 환영합니다!
당신은 부속의 형태로 GROUP BY 절에 SELECT 문을 쓸 수 있다고 생각합니다. 그건 오라클에서 작동합니다, 어쩌면 그것은 MySQL에서도 작동합니다. 누군가 이것을 확인할 수 있습니까? – Falcon