当前位置: 首页 > 知识库问答 >
问题:

如何使用最新MYSQL版本的left join和两个聚合函数来获取组

姬俊远
2023-03-14

我试过这样做,但无法得到结果,我只能得到一个列与类别,而不是两个在同一时间。

这是我用过的:

select Budget.Category, sum(Budget.Estimated_Cost) as Estimated_Cost,       
        sum(Actuals.Actual_Cost) as Actual_Cost 
from Budget
    LEFT OUTER JOIN Actuals ON Budget.task = Actuals.Task
GROUP BY Budget.Category;

而且

select b.Category, sum(b.Estimated_Cost) AS Estimated_Cost 
FROM Budget b
    LEFT JOIN (SELECT DISTINCT a.Task 
                FROM Actuals a) x 
        ON x.Task = b.task
GROUP BY b.Category**

共有1个答案

倪鸿禧
2023-03-14

首先在budget中进行聚合,以获得每个类别estimated_cost的和,然后加入actuals并再次聚合,以获得链接到每个类别actual_cost的和:

SELECT b.Category, 
      b.Estimated_Cost,
      SUM(a.Actual_Cost) AS Actual_Cost 
FROM (
  SELECT Category, SUM(Estimated_Cost) Estimated_Cost,
         GROUP_CONCAT(Task) Tasks
  FROM Budget
  GROUP BY Category
) b LEFT JOIN Actuals a
ON FIND_IN_SET(a.Task, b.Tasks)
GROUP BY b.Category, b.Estimated_Cost
 类似资料:
  • 我想检索进程的最后2个版本: 预期结果将是: 我写了这个查询,但我不喜欢它。。。我不能将它作为子查询包含在中<代码>从中选择(从中选择子字符串索引(按顺序排列(ORDER BY

  • 问题内容: 我只是在学习MySQL-是否有组合(或嵌套)聚合函数的方法? 给定一个查询: 这将给我每个用户回答的问题数量。我真正想要的是每个用户回答的平均问题数量…… 计算此统计信息的正确方法是什么? 如果有可能,是否有办法针对每个问题分解此统计信息?(用户可以多次回答相同的问题)。就像是: 问题答案: 您必须使用子查询: 您不能将一个聚合与另一个聚合一起包装。如果MySQL支持分析/排序/窗口功

  • 鸿蒙开发app,实现-提示用户打开app之后检查版本如果当前版本小于最新版本提示更新版本-功能。 通过getBundleInfo()获取到的是用户安装的版本还是最新版本呢? 如何获取用户安装的app版本?如何获取应用市场的最新版本? 通过getBundleInfo()获取app.json文件中的version字段

  • 问题内容: 我的目标是获取具有特定参数的最新Jenkins职位(职位名称hanna)。 我这样做的唯一原因是Jenkins从脚本触发时不返回内部版本号,因此我必须传递一个参数,但稍后必须能够对该参数进行查询。 现在我有Rigth,它不返回构建ID: 我得到这样的工作清单: 这不完全是我想要的,因为我也想使用参数来完成作业hanna的最新实例,该返回也将返回,而且我也无法弄清楚Jenkins上存储的

  • 我想知道如何在Elasticsearch中使用聚合时获得具有最高doc_count的存储桶。我正在使用Kibana示例数据kibana_sample_data_flights: 如果有一个存储桶具有最大文档计数,我可以将术语聚合的大小设置为1,但是如果有两个存储桶具有相同的最大文档计数,则这不起作用。 自从我涉足管道聚合以来,我觉得应该有一种简单的方法来实现这一点。最大桶聚合似乎能够处理多个最大桶

  • 问题内容: 这是一个后续问题,用于检索给定修订版本的审计实体名称,旧值和新值 我已经弄清楚了如何获得实体的两个修订版,但是很难找到两者之间的区别。envers中有什么可以帮助对不同修订版本的实体进行比较?还是任何好的图书馆? 如果可以修改属性(_mod)字段字段,我将非常酷。 问题答案: 因此,我想使生活更轻松的是创建一个注释,以标记我有兴趣比较的字段。没有,我最终不得不坚持命名对话,就像仅使用以