私が理解できないように見えるSQLステートメントで私を助けてくれることを願っています.
訪問した国と次のような日付を含む、訪問のリストを含むテーブルがあります。
- 英国、2009 年 11 月 1 日
- ドイツ、2010 年 6 月 8 日
- フラン、2011 年 9 月 10 日
- 英国、2011 年 10 月 11 日
等
次のようなテーブルリストが得られるようにデータを抽出したい
訪問回数 - 国リスト
- 23 - イギリス
- 10 - フランス、ドイツ
- 4 - チェコ共和国、米国、カナダ
- 1 - ポーランド、セルビア、アルゼンチン、ニュージーランド
データが示すように、私はチェコ共和国、アメリカ、カンダに 4 回訪問しました。
そしてクエリ
select * from
(
select count(*) as "trips", country from trip_view
group by country
order by 1 desc
) as a
データを返します
- 23 イギリス
- 10 フランス
- 10 ドイツ
- 4 チェコ共和国
- 4 アメリカ
- 4 カナダ
- 等
したがって、外側の SQL に一種のグループが必要ですが、次のようにすると
select * from
(
select count(*) as "trips", country from trip_view
group by country
order by 1 desc
) as a
group by trips
その後、国ごとに 1 つのエントリのみを取得します。すなわち
- 23 イギリス
- 10 フランス
- 4 チェコ共和国
- 等
したがって、各行には、すべての国ではなく、1 つの国のみがリストされています。つまり、行 2 にはフランスとドイツが表示され、行 3 にはチェコ、米国、カナダが表示されます。
mysqlでこれを行う方法はありますか?
ありがとう