首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多组级联

多组级联
EN

Stack Overflow用户
提问于 2018-03-24 00:10:21
回答 3查看 54关注 0票数 0

我有sql数据和查询

http://sqlfiddle.com/#!9/749bec/1

当前查询的结果不是我所需要的。

代码语言:javascript
复制
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

因为它显示了

代码语言:javascript
复制
kode_satker     newvalue
100     A-100 A-200 B-400 B-100
200     C-100 A-100 A-100

我需要新的查询显示

代码语言:javascript
复制
kode_satker     newvalue
100     A-300 B-500
200     A-200 C-100

知道吗??

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-24 03:13:43

以下是具有正确的新值顺序的解决方案

选择kode_satker,group_concat(map,'-',值按地图的顺序)作为new_value (从satker.kode_satker左连接数据选择satker.kode_satker,data.map,sum(data.value)作为值,data.map按kode_satker选择data.kode_satker=satker.kode_satker组)

结果: kode_satker new_value 100。A-300,B-500 200。A-200,C-200

票数 0
EN

Stack Overflow用户

发布于 2018-03-24 00:32:10

如果需要子查询,则没有子查询就不能“嵌套”聚合;基本结构是

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2018-03-24 22:40:44

选择kode_satker,GROUP_CONCAT(映射分隔符的映射顺序'\n')作为新映射,GROUP_CONCAT(按地图分隔符'\n')作为rp (从kode_satker选择satker.kode_satker,data.map,和(值)作为data.kode_satker=satker.kode_satker组的左连接数据( data.kode_satker )作为Q组

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49459902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档