mysql 对 group_concat 中的项目进行计数

Posted

技术标签:

【中文标题】mysql 对 group_concat 中的项目进行计数【英文标题】:mysql count items in group_concat 【发布时间】:2016-03-26 12:38:25 【问题描述】:

mysql 中使用 GROUP_CONCAT 时遇到问题 我的表g0如下:

ID  Age Sex
-------------
1   16  Male
2   18  Female
3   16  Male
4   18  Female
5   16  Male

但我需要桌子看起来像

ID        count
1,3,5       3
2,4         2

我试过这个查询:

SELECT GROUP_CONCAT(
CONCAT(cnt)) cnts FROM 
(SELECT COUNT(ID) as cnt FROM g0  GROUP BY Age , Sex order by ID Desc) ;

但我收到此错误消息:

1248. Every derived table must have it's own alias

【问题讨论】:

【参考方案1】:

无需在group_concat 中包含count - 只需将其选择为具有相同group by 表达式的不同项目即可:

SELECT   GROUP_CONCAT(id), COUNT(*)
FROM     g0
GROUP BY age, sex
ORDER BY 1 DESC

【讨论】:

如果你得到你的答案而不是你的责任来支持答案并接受,因为他真的值得@mohd zoubi

以上是关于mysql 对 group_concat 中的项目进行计数的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 如何对特定字段进行 GROUP_CONCAT?

MySQL GROUP_CONCAT 中的条件

MySQL:GROUP_CONCAT 中的 DISTINCT 删除相同的值(不重复)

如何按(多个值)中的位置对 GROUP_CONCAT 列进行排序?

SQL 使用 group_concat 与每个连接项目的计数,而不是在一行中的总计数

如何仅使用“group_concat”过滤表 mysql 中的行