计算 2 行 2 个不同表的平均值

Posted

技术标签:

【中文标题】计算 2 行 2 个不同表的平均值【英文标题】:Calculate an average with 2 rows of 2 different tables 【发布时间】:2021-08-09 19:45:47 【问题描述】:

我对 mysql 还很陌生,目前我正在努力解决一个问题。

我有 2 个表格(技术日志和销售)。我现在打算做的是,从 techlog 中的列中获取总和,与 sales 相同。这两个总和需要计算新的 Sum(sales.row)/Sum(techlog.row)。这样做的想法是我可以获得每分钟的价格。 有这样的可能吗?

两个表共享具有相同 ID 的列。此外,两张表上还提供了一些列,例如 Immatriculation。

到目前为止我已经尝试过:

use dbm_project;

SELECT techlog.Immatriculation, sum(techlog.TimeTOT), sum(sales.total)
FROM techlog
INNER JOIN sales
ON techlog.Immatriculation = sales.Immatriculation
GROUP BY techlog.Immatriculation

我提前道歉,因为我发现我的问题是缺少经验。

长话短说:我想计算两个不同表的两个值,并用这些值计算新的值。

【问题讨论】:

【参考方案1】:

这是子查询的工作。

一个是

         SELECT Immatriculation, sum(TimeTOT) TimeTot
           FROM techlog
          GROUP BY Immatriculation

另一个是

         SELECT Immatriculation, sum(total) SalesTot
           FROM sales
          GROUP BY Immatriculation

然后你把他们联合起来

SELECT t.Immatriculation, t.TimeTot, s.SalesTot
  FROM (
             SELECT Immatriculation, sum(TimeTOT) TimeTot
               FROM techlog
              GROUP BY Immatriculation
       ) t
  LEFT JOIN (
             SELECT Immatriculation, sum(total) SalesTot
               FROM sales
              GROUP BY Immatriculation
       ) s ON t.Immatriculation = s.Immatriculation;

这是因为 ....

    子查询可以代替表。这就是 S结构化Query L语言中的S。 两个子查询中的每一个都有每个Immatriculation 值的一行。因此,您会在结果集中为每一个获得一行。

【讨论】:

非常感谢。这对我帮助很大,我想我明白了你的想法。非常感谢您的快速解决方案建议。

以上是关于计算 2 行 2 个不同表的平均值的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在不使用子查询的情况下根据不同的行计算平均值?

Python:计算具有不同长度的列表列表中第 n 个元素的平均值

计算3x3窗口的均值滤波和中值滤波(向下取整保留整数值)。

1.表的聚合查询(和平均最大最小值)

逐行计算数据帧的平均值

数据结构-线性表(数组存储)插入和删除节点的平均移动次数计算