次の2つのテーブルがあります:
テーブルクエリとテーブル時間:
id | text id | mid | country
1 hello 1 1 UK
2 hi 2 1 PL
3 sd 3 2 USA
id = mid、国は異なります (英国、米国など)。
次のリストを作成する必要があります。
UK - text 30 rows (this text has most mid in table 2 for UK)
USA - text 25 rows
PL - text 10 rows
...
SS - text 1 rows.
今のところ、次のアイデアがあります。各国のどの MID が最大行を持っているかを取得し、mid=id でテキストを取得して並べ替えます。
SELECT time.country,querys.text,COUNT(mid) AS cnt
FROM time INNER JOIN `querys` ON(time.mid = querys.id)
GROUP BY mid
ORDER BY country,cnt
DESC
しかし、このコードでは、すべてのテキストをカウントとともに受け取ります。そのような
UK text1 30,
UK text2 25,
PL text2 10,
PL text3 5 ..
しかし、国ごとに最大値が 1 つだけ必要です。クエリを国ごとに最大 1 つのテキストにカットする方法を教えてください。