mySQL创建总计项目列表

时间:2014-05-31 06:17:11

标签: mysql

我正在对一个表进行求和,并希望得到一个额外的列,其中包含一些未被分组的值列表。所以,

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

有没有办法实现这个目标?

3 个答案:

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