多个 GROUP CONCAT
multiple GROUP CONCAT
我有 sql 数据和查询
http://sqlfiddle.com/#!9/749bec/1
当前查询的结果不是我需要的
SELECT
satker.kode_satker,GROUP_CONCAT(DISTINCT(data.map) ,'-',value SEPARATOR '\n') as newvalue
FROM satker
left join data on data.kode_satker=satker.kode_satker
GROUP BY data.kode_satker
因为它显示
kode_satker newvalue
100 A-100 A-200 B-400 B-100
200 C-100 A-100 A-100
我需要新的查询显示
kode_satker newvalue
100 A-300 B-500
200 A-200 C-100
有什么想法吗??
你需要一个子查询,没有一个就不能"nest"聚合;基本结构是
SELECT a, GROUP_CONCAT(CONCAT(b, '-', x_sum))
FROM (
SELECT a, b, SUM(x) AS x_sum
FROM some_table
GROUP BY a, b
) AS q
GROUP BY a
这是新值顺序正确的解决方案
SELECT kode_satker,group_concat(map,'-',valuesum order by map) as new_value
从 (
Select satker.kode_satker, data.map, sum(data.value) as valuesum
来自萨克
左连接数据
在 data.kode_satker=satker.kode_satker
按 satker.kode_satker, data.map) t 分组
按 kode_satker
分组
结果:
kode_satker new_value
100. A-300,B-500
200.A-200,C-200
SELECT kode_satker,GROUP_CONCAT(map order by map separator '\n') as newmap,GROUP_CONCAT(xval order by map separator '\n' ) 作为 rp 来自 (SELECT
satker.kode_satker,data.map,sum(value) 作为 xval
来自萨克
在 data.kode_satker=satker.kode_satker 上左连接数据
GROUP BY data.kode_satker,map ) as q group by kode_satker
我有 sql 数据和查询
http://sqlfiddle.com/#!9/749bec/1
当前查询的结果不是我需要的
SELECT
satker.kode_satker,GROUP_CONCAT(DISTINCT(data.map) ,'-',value SEPARATOR '\n') as newvalue
FROM satker
left join data on data.kode_satker=satker.kode_satker
GROUP BY data.kode_satker
因为它显示
kode_satker newvalue
100 A-100 A-200 B-400 B-100
200 C-100 A-100 A-100
我需要新的查询显示
kode_satker newvalue
100 A-300 B-500
200 A-200 C-100
有什么想法吗??
你需要一个子查询,没有一个就不能"nest"聚合;基本结构是
SELECT a, GROUP_CONCAT(CONCAT(b, '-', x_sum))
FROM (
SELECT a, b, SUM(x) AS x_sum
FROM some_table
GROUP BY a, b
) AS q
GROUP BY a
这是新值顺序正确的解决方案
SELECT kode_satker,group_concat(map,'-',valuesum order by map) as new_value 从 ( Select satker.kode_satker, data.map, sum(data.value) as valuesum 来自萨克 左连接数据 在 data.kode_satker=satker.kode_satker 按 satker.kode_satker, data.map) t 分组 按 kode_satker
分组结果: kode_satker new_value 100. A-300,B-500 200.A-200,C-200
SELECT kode_satker,GROUP_CONCAT(map order by map separator '\n') as newmap,GROUP_CONCAT(xval order by map separator '\n' ) 作为 rp 来自 (SELECT satker.kode_satker,data.map,sum(value) 作为 xval 来自萨克 在 data.kode_satker=satker.kode_satker 上左连接数据 GROUP BY data.kode_satker,map ) as q group by kode_satker