MySQL GROUP_CONCAT排除组值

时间:2016-07-19 23:04:04

标签: mysql group-by distinct group-concat

我正在尝试为下表做一个小组连续

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 个答案:

答案 0 :(得分:4)

SELECT l, GROUP_CONCAT(DISTINCT r), SUM(num)
FROM groups
WHERE l <> r
GROUP BY l;