我正在尝试编写一个查询,它将使用sum函数将1列中的所有值相加,然后除以另一个表中的元组计数。由于某种原因,当我运行求和查询时,我得到了正确的数字,但是当我在下面的查询中使用它时,值是错误的。在sql中使用SUM()与多个表格
这就是我试图做的,但数字出来错了。
select (sum(adonated)/count(p.pid)) as "Amount donated per Child"
from tsponsors s, player p;
我发现问题在总和中。下面返回650000时,它应该返回25000
select (sum(adonated)) as "Amount donated per Child"
from tsponsors s, player p;
如果我删除了从运动员P它得到正确的金额。不过,我需要玩家表来获得玩家人数。
我有3个与此查询相关的表。 播放器(PID,TID(FK)) 队(TID) tsponsors(TID(FK),adonated,SID(FK))这是一个连接表
我想要得到的是所有的总和捐赠给每个团队的金额(合计)并将其除以数据库计数(pid)中的玩家人数。
假设表'tsponsors'和'player'以某种方式链接在一起,您需要将它放入查询中。例如:'WHERE s.playerID = p.playerID' –
表结构将有助于:另外,当要求在一对多关系中的值之和必须在连接之前完成,否则最终会产生夸大/缩小的值。 – xQbert