【问题标题】:How to Sum / Count two different columns in one query SQL?如何在一个查询 SQL 中对两个不同的列进行求和/计数?
【发布时间】:2014-12-08 20:53:10
【问题描述】:

我是新来的,我遇到了一个问题。 总而言之,我们有一个表“Teams”,它有两列,teamID 和 name。 然后我们有另一个表“Matches”,其中包括 matchID、localTeamID、visitorTeamID、localTeamGoals、visitorTeamGoals....等。 因此查询需要以下内容:“返回球队名称,表示作为本地比赛的数量,以及作为访客参加的比赛数量,作为两个不同的列,在一个查询中,不允许使用光标”。

问题是,您需要团队名称,因此当您在比赛和团队之间进行连接时,比如说 localTeamID = teamID,您只能获得本地比赛......所以为了同时获得访问者。 ..你再次加入与visitorTeamID相同的teamID ....但是我的问题是,对于每场本地比赛,我都会得到所有的访问者比赛...

我怎样才能获得像

这样的正确结果
Team          LocalMatches     VisitorMatches
Real Madrid             4                   5
Manchester              5                   4

请注意,查询中的“sums”或“counts”可能不同。 在此先感谢,我希望有人可以在这里帮助我。

【问题讨论】:

  • 请注意,对于 Matches 表中的每一行,您只能查看哪支球队与其他球队(本地 vs 访客)进行了比赛,因此要知道一支球队作为本地和访客有多少场比赛,您必须计算/汇总您为每个团队找到的每一行作为本地和访客......但是很难将其计算为当您找到具有该团队的访客 ID 的行时,您不会获得本地 ID,反之亦然......

标签: sql-server-2008 count sum multiple-columns difference


【解决方案1】:

你可以像这样使用子查询:

select Name as Team
  ,(select count(*) from Matches where localTeamID = teamID) as LocalMatches
  ,(select count(*) from Matches where visitorTeamID = teamID) as VisitorMatches
from Teams

【讨论】:

    猜你喜欢
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 2013-01-30
    相关资源
    最近更新 更多