我正在对一个表进行求和,并希望得到一个额外的列,其中包含一些未被分组的值列表。所以,
C1 C2 C3
a z 1
a y 2
b z 4
b y 2
b x 3
c x 4
我想做select c1, sum(c3) as sC3, someMagicFunction(c2) from t group by c1
所以我得到了
C1 sC3 C3
a 3 y,z
b 9 x,y,z
c 4 x
有没有办法实现这个目标?
答案 0 :(得分:2)
我相信您正在寻找的神奇功能是GROUP_CONCAT。 见http://www.mysqlperformanceblog.com/2013/10/22/the-power-of-mysqls-group_concat/
答案 1 :(得分:2)
使用group_concat:
select c1, group_concat(c2), sum(c3) from your_table group by c1;
+------+------------------+---------+
| c1 | group_concat(c2) | sum(c3) |
+------+------------------+---------+
| a | z,y | 3 |
| b | z,y,x | 9 |
| c | x | 4 |
+------+------------------+---------+
3 rows in set (0.00 sec)
答案 2 :(得分:1)
试试这个,
SELECT c1, SUM(c3) sC2, GROUP_CONCAT(c2) sC3 FROM tableName
GROUP BY c1