Mysql group_concat里面还有sums

时间:2012-02-16 09:45:48

标签: mysql

我有一个我想要求和的不同属性的表,然后将它们连接成一个JSON字符串,以便更容易通过网络发送。这是一个简化的表格:

t1
type    amount
'atr1'  10
'atr2'  10
'atr1'  17
'atr3'  20
'atr3'  4

我试过像

这样的东西
select concat('{', 
    group_concat(
        (select concat('"', type, '":', sum(amount)) from t1 group by type)
    ),
'}')

但失败了。

我想以'{"atr1":27,"atr2":10,"atr3":24}'

结束

2 个答案:

答案 0 :(得分:1)

类似

select 
    group_concat(concat('"', type, '":', TheSum))
FROM
    (
    SELECT SUM(amount) AS TheSum,type
    FROM t1
    GROUP BY type
    ) T

答案 1 :(得分:1)

尝试此查询 -

SELECT CONCAT('{', GROUP_CONCAT(c1), '}') FROM (
  SELECT CONCAT('"', type, '":', SUM(amount)) c1 FROM t1 GROUP BY type
  ) t