Sql 从表中计算观众总数

Sql 从表中计算观众总数,sql,postgresql,Sql,Postgresql,桌上游戏 Home | Visitor | Spectators ----------------------------------- a | b | 12 b | c | 15 a | c | 32 b | a | 3 c | a | 8 乒乓球队 id | name -------------- a | TeamA b

桌上游戏

Home |  Visitor    | Spectators
-----------------------------------
a    |    b        |   12
b    |    c        |   15  
a    |    c        |   32
b    |    a        |   3
c    |    a        |   8
乒乓球队

id  |  name
--------------
a   |  TeamA
b   |  TeamB
c   |  TeamC
现在我需要计算每支球队主场观众总数+观众人数

A=12+12+3+8 B=12+15+3
它是否需要按照表格团队的显示方式进行格式化?如果没有,这应该适用于您:

select top 1 
    (select sum(spectators) from sheet1 where home='a' or visitor='a') as teama,
    (select sum(spectators) from sheet1 where home='b' or visitor='b') as teamb,
    (select sum(spectators) from sheet1 where home='c' or visitor='c') as teamc 
from sheet1;
这将输出为:

teama     teamb     teamc
55        30        55

有很多方法可以做到这一点,下面是另一个:

SELECT name,sum(sum)
FROM
    (SELECT t.name,SUM(g.spectators)
    FROM teams t, games g WHERE t.id=home
    GROUP BY t.name
    UNION
    SELECT t.name,SUM(g.spectators)
    FROM teams t, games g WHERE t.id=visitor
    GROUP BY t.name)visits
GROUP BY name

TeamA的第二个12来自哪里?这不应该是12+32+3+8吗?你试过什么?这看起来像是一个家庭作业。这不是家庭作业,我只是sql的新手。我正在寻找表格团队的格式