我有sql数据和查询
http://sqlfiddle.com/#!9/749bec/1
当前查询的结果不是我需要的
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
我需要新的查询节目
server {
location / {
proxy_pass http://$http_host$request_uri;
proxy_http_version 1.1;
proxy_set_header Connection "";
...
}
}
任何想法??
答案 0 :(得分:0)
你需要一个子查询,你不能" 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
答案 1 :(得分:0)
以下是newvalue正确顺序的解决方案
选择kode_satker,group_concat(map,' - ',valuesum order by map)作为new_value 来自( 选择satker.kode_satker,data.map,sum(data.value)作为valuesum 来自satker 左连接数据 在data.kode_satker = satker.kode_satker上 group by satker.kode_satker,data.map)t 按kode_satker分组
结果: kode_satker new_value 100. A-300,B-500 200. A-200,C-200
答案 2 :(得分:0)
选择kode_satker,GROUP_CONCAT(按地图分隔符映射顺序' \ n')作为newmap,GROUP_CONCAT(xval order by map separator' \ n')作为rp FROM(SELECT satker.kode_satker,data.map,sum(value)as xval 来自satker 在data.kode_satker = satker.kode_satker上左连接数据 GROUP BY data.kode_satker,map)作为q group by kode_satker