如何对sql查询引用组中的多列求和

Posted

技术标签:

【中文标题】如何对sql查询引用组中的多列求和【英文标题】:how to sum multiple columns in sql query refrance group 【发布时间】:2019-11-26 07:13:22 【问题描述】:

我需要按代理名称进行分组,并使用 sql 查询计算每个代理的所有金额

我有 3 列代理和 3 列金额,而不是 1 列代理和 3 列,您的演示应用列有代理名称和 3 列金额 1,2,3,我的意思是 6 列,公因数是名称,需要计算每个人的金额

这是迄今为止我尝试过的查询,

SELECT  InternalInvestigation.Agent Name, 
        InternalInvestigation.Amount, 
        InternalInvestigation.[Amount 2], 
        InternalInvestigation.[Amount 3], 
FROM InternalInvestigation
GROUP BY InternalInvestigation.Agent Name, 
         InternalInvestigation.Amount, 
         InternalInvestigation.[Amount 2],
         InternalInvestigation.[Amount 3];

这是我要总结的表格:

我需要像上图一样获取数据

【问题讨论】:

请将代码和数据发布为文本,而不是图像。 对不起,这是什么表结构?另外,您能详细说明一下您要合计多少吗? 我需要通过对 Agnet 名称进行分组来对所有金额列 Amount + amoun2 + amount3 求和 这是您要找的吗?选择agents.name, sum(amount1+amount2+amount3) as totalAmount from agents group by agents.name 【参考方案1】:

你可以试试下面这个逻辑-

SELECT an agent_name,SUM(amt) total_amount
FROM
(
    SELECT agent_name an,amount amt FROM your_table
    UNION ALL
    SELECT agent_name_2,amount_2 FROM your_table
    UNION ALL
    SELECT agent_name_3,amount3 FROM your_table
) A
GROUP BY an

【讨论】:

感谢 ypu 的回答,但我在 quary 中有错误语法错误(缺少运算符) 它应该根据您的表结构使用调整后的表和列名。您能否提供您正在尝试的查询? 我使用了与您相同的查询,为我在表中的名称提供了一些更改【参考方案2】:

您可以通过以下查询实现您想要的:

SELECT agent_name, SUM(amount+amount2+amount3) as Total
FROM InternalInvestigation
GROUP BY agent_name;

DEMO HERE

【讨论】:

显示没有计算的空结果 什么意思?这正是您正在寻找的预期结果。 我在访问SQL中应用了它,结果为空:) 我有 3 列代理和 3 列金额不是 1 列代理和 3 列您的演示应用列有代理名称和 3 列金额 1,2,3 我的意思是 6 列共同因素是名称并需要计算每个人的金额 请至少向我展示您正在做什么的屏幕(没有任何更改),包括准确的查询、准确的数据集和准确的表结构。如果没有更多信息,我们无法为您提供提示。

以上是关于如何对sql查询引用组中的多列求和的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL 中对多列求和

sql学习笔记2

sql语句求和

DART SQL 如何从 Dart 中的 SQL 查询结果中读取多行值(多列)?

sql对查询结果求和

如何使用没有临时表的 SQL 查询为组中的每个元素添加序列号