如何在不同表上使用group_concat和group by进行求和

琼·马尔多纳多

我有3个表:Users,Tools,tool_assigned:

用户:

ID 名称 部门
1个 约翰 一种
2 彼得 b
3 保罗 一种

工具:

ID 名称
1个 工具1
2 工具2
3 工具3

Tool_assigned:

ID id_user id_tool 数量
1个 1个 1个 1个
2 1个 2 3
3 1个 3 1个
4 2 1个 2
5 2 2 3
6 2 3 1个
7 3 1个 2
8 3 2 1个
9 3 3 1个

我需要得到以下结果:

id_tool 工具名称 总量 summary_department
1个 工具1 5 a-1,b-2,c-2
2 工具2 7 a-3,b-3,c-1
3 工具3 3 a-1,b-1,c-1

我已经尝试过执行可以得到该结果的查询,但是到目前为止,我得到的最好的结果是:

SELECT tool.id, tool.name, sum(tool_assigned.quantity) as total_quantity, 
       group_concat(user.deparment, '-', tool_asigned.quantity) as summary_department 
FROM tool_assigned 
INNER JOIN users ON tool_assigned.id_user = user.id 
INNER JOIN tools ON tool_assigned.id_tool = tool.id 
GROUP BY tools.name, users.department

请帮助我,我已经尝试了一切。

专线小巴

您需要两个聚合级别:首先按工具和部门分类,然后仅按工具分类。您可以将其表达为:

select t.id, t.name as tool_name, 
    sum(x.quantity) as total_quantity,  
    group_concat(x.info order by x.department) as summary_department
from tools t
inner join (
    select ta.id_tool, u.department, concat(u.name, '-', sum(t.quantity)) as info 
    from tool_assigned ta 
    inner join users on ta.id_user = u.id 
    group by ta.id_tool, u.department
) x on x.id_tool = t.id
group by t.id

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我如何从不同的表进行计数和求和(SQL)

来自分类Dev

在group_concat中将数字列求和

来自分类Dev

使用LINQ进行分组和求和

来自分类Dev

如何使用标签对DataFrame进行分组并求和?

来自分类Dev

对数组进行分组和求和

来自分类Dev

对数组对象进行分组和求和

来自分类Dev

对多列进行分组和求和

来自分类Dev

kdb +:对多个列进行分组和求和

来自分类Dev

用和号交替进行求和

来自分类Dev

如何不按分组进行求和

来自分类Dev

对轮廓区域进行排序后如何求和?

来自分类Dev

如何用Java进行乘法/求和

来自分类Dev

使用Spark SQL进行条件滞后求和

来自分类Dev

使用MATCH / INDEX进行矩阵求和

来自分类Dev

在条件求和中使用数组进行分组

来自分类Dev

使用PHP,MYSQL,GROUP_CONCAT和JOIN进行空间搜索

来自分类Dev

使用IN与group_concat结果进行MySQL查询

来自分类Dev

如何使用ORM查询对类别进行分组和求和

来自分类Dev

如何使用Linq对列表列表进行分组和求和

来自分类Dev

对联接表中的总计进行分组和求和

来自分类Dev

如何对数据透视表中的SUM()字段进行求和

来自分类常见问题

如何在整个集合中进行仅求和查询?

来自分类Dev

如何在熊猫中进行滚动求和与乘法?

来自分类Dev

如何在整个集合中进行仅求和查询?

来自分类Dev

如何在 SQl Pivot Query 中进行求和运算

来自分类Dev

如何对对象数组中的值进行分组和求和?

来自分类Dev

如何对Nd张量进行切片和求和?

来自分类Dev

使用Angular $ post和PHP Codeigniter进行请求和响应

来自分类Dev

使用C中的数组进行扫描和求和