我希望你能帮我解决一个我似乎无法弄清楚的SQL语句。
我有一张表格,其中列出了所访问的国家/地区以及日期,例如;
等
我想提取数据,以便获得一个表格列表,如下面的
访问时间 - 国家/地区列表
因此,数据显示我已经向捷克共和国,美国和美国进行了4次访问。坎达
和查询
select * from
(
select count(*) as "trips", country from trip_view
group by country
order by 1 desc
) as a
返回数据
所以我需要在外部SQL上使用一种组,但如果我执行以下操作
select * from
(
select count(*) as "trips", country from trip_view
group by country
order by 1 desc
) as a
group by trips
然后我每个国家只能获得1个条目。即。
因此,对于每一行,我只列出了1个国家而不是所有国家。即第2行应显示法国&德国和第3排应该显示捷克,美国和加拿大
任何想法如何在mysql中执行此操作?
由于
答案 0 :(得分:1)
在国家/地区列中使用 GROUP_CONCAT
,它应该会产生您想要的结果:
SELECT trips,
GROUP_CONCAT(country) AS country
FROM (
SELECT COUNT(*) AS "trips",
country
FROM trip_view
GROUP BY country
) a
GROUP BY trips
ORDER BY 1 DESC
输出:
TRIPS COUNTRY
23 United Kingdom
10 France,Germany
4 Czech Republic,Canada,USA