繁体   English   中英

计算两个表的平均值

[英]Calculate average of two tables

我是SQL的新手,我无法弄清楚如何计算两个表中某个值的平均值。

我有一张桌子,里面有世界各地湖泊的所有信息,我有另一张桌子,包括世界上所有海洋的信息。

我想计算海洋和湖泊的平均深度。 我知道以下内容:

SELECT 
    AVG(depth) AS AvgDepthSeas
FROM
    sea

这将使我获得世界上海洋的平均深度。

SELECT 
    AVG(depth) AS AvgDepthLake
FROM
    lake

这将使我获得世界上所有湖泊的平均深度。

我无法弄清楚如何将这两个平均数组合起来计算海洋+湖泊总和的平均值。 我尝试了不同的东西; 计算海洋和湖泊的数量,看看有多少海洋和湖泊,所以我可以将平均数量结合起来,并将它们除以海洋+湖泊/湖泊的总和。

我只知道必须有一种更简单的方法来解决这个问题。

这就是union all真的很方便的地方:

select avg(depth)
from ((select depth from sea) union all
      (select depth from lake)
     ) sl;

@ CodeBeginner12,你的更长的尝试将是这样的:

select (sum(s.depth)+sum(l.depth))/(count(s.name)+count(l.name))
from seas s, lakes l

戈登的解决方案更清晰,更实用。

暂无
暂无

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

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