MySQL GROUP_CONCAT 不包括组值

Posted

技术标签:

【中文标题】MySQL GROUP_CONCAT 不包括组值【英文标题】:MySQL GROUP_CONCAT excluding group value 【发布时间】:2016-11-23 00:29:04 【问题描述】:

我正在尝试为下表进行组连接

l   r   num
A   B   1
A   C   3
A   A   5
B   C   5
B   C   7
B   C   9
C   A   1
C   A   2
C   C   3

当我们使用GROUP BY 时,我想获得那些不属于该组的元素的组连接,并对数字求和(以类似的方式)。例如,我试图获得的输出是

l   grps   sum(num)
A   B,C       4
B   C        21
C   A         3

我目前得到如下输出

l   grps   sum(num)
A   B,C,A     9
B   C        21
C   A,C       6

我使用下面的查询

SELECT l, group_concat(distinct r), sum(num)
from groups
group by l;

SQL 小提琴是here

【问题讨论】:

【参考方案1】:
SELECT l, GROUP_CONCAT(DISTINCT r), SUM(num)
FROM groups
WHERE l <> r
GROUP BY l;

【讨论】:

以上是关于MySQL GROUP_CONCAT 不包括组值的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 查询 IN GROUP_CONCAT 不起作用

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

MYSQL中group_concat有长度限制!默认1024

MYSQL中group_concat有长度限制!默认1024(转载)

MySQL 使用 GROUP_CONCAT 和多个 JOINS

MySQL GROUP_CONCAT长度限制引发的一场灾难