计算 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 个不同表的平均值的主要内容,如果未能解决你的问题,请参考以下文章