开发者社区> 问答> 正文

MySQL:如何将表列聚合为列表并计数?

我在MySql中有一个表,如:

URL Browser A Chrome B Chrome C Firefox A Chrome A Firefox A Opera A Chrome B Chrome B Firefox C Tor “ URL”列中的数据范围很广,但是“浏览器”列中的数据集有限。我想汇总在URL列上,并按降序获得列表中每个浏览器的最高计数,例如:

URL FrequentlyUsedBrowser A [(Chrome,3),(Firefox,1),(Opera,1)] B [(Chrome,2),(Firefox,1)] C [(Chrome,1),(Tor,1)] 我一直在为它编写SQL,以使用窗口分区将计数作为每个浏览器的一个条目,但无法将其添加到列表中。

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-15 13:53:22 848 0
1 条回答
写回答
取消 提交回答
  • 这是您的查询。这是可以实现的group_concat()

    select url , concat('[', group_concat('(', browser, ',', ct, ')'), ']') as FrequentlyUsedBrowser from (select count(1) ct, url, browser from test group by url, browser) t1 group by url

    2019-11-15 13:53:39
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像