繁体   English   中英

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

[英]Calculate an average with 2 rows of 2 different tables

我对 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

我提前道歉,因为我发现很难用缺少的经验来阐述我的问题。

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

这是子查询的工作。

一个是

         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;

这有效,因为....

  1. 子查询可以代替表。 这就是结构查询语言中的S。
  2. 两个子查询中的每一个都具有每个Immatriculation值的一行。 因此,每个结果集中都有一行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM