は私が訪問テーブル(visit_table)、構造:MySQL - 別のクエリの結果をGROUP BYする方法は?
- IDを
- のIP_address
- タイムスタンプ
とIPのための国の名前を持つテーブル(country_table)は範囲
- ID
- begin_IP( IP範囲)
- end_IP(IP範囲の終わり)
- begin_num(begin_IPの数値同等、すなわちINET_ATON(begin_IP))
- END_NUM
- COUNTRY_CODEの開始(例えばUS) http://www.maxmind.com/app/csvに基づいて
- COUNTRY_NAME
()
私は、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
は私が何か間違ったことをやっているかなり確信しているが、解決方法がわからない - JOINまたはステートメントのBY SELECTまたはGROUPで何かをすることのいくつかの並べ替え?任意のポインタを歓迎します!
を、私はあなたが副選択の形でGROUP BY句でselect文を書くことができると思います。それはOracle上で動作します。多分mysqlでも動作します。誰かがこれを確認できますか? – Falcon