繁体   English   中英

如何将两个联合查询一起添加

[英]how to add two unioned queries together

我正在尝试将两个组按总和添加在一起,这是我的代码:

SELECT VISITOR,COUNT(VISITOR)
FROM ENGLAND
WHERE TIER = 1 AND SEASON >= 1980
GROUP BY VISITOR
UNION
SELECT HOME,COUNT(HOME)
FROM ENGLAND
WHERE TIER = 1 AND SEASON >= 1980
GROUP BY HOME;

这是输出的一部分

AFC Bournemouth 37
AFC Bournemouth 38

问题是我如何使输出看起来像

AFC Bournemouth 75

(这意味着将主场和访客数量加在一起)

计算机科学中的所有问题都可以通过另一层间接解决。
—戴维·惠勒

您要一起添加相同名称的值吗? 只需使用SUM()和GROUP BY:

SELECT Name, SUM(Games) AS Games
FROM (SELECT Visitor AS Name, COUNT(*) AS Games
      FROM England
      WHERE Tier = 1 AND Season >= 1980
      GROUP BY Visitor
      UNION ALL
      SELECT Home, COUNT(*)
      FROM England
      WHERE Tier = 1 AND Season >= 1980
      GROUP BY Home)
GROUP BY Name;

(不带ALL的UNIION会删除重复项,如果有相同数量的家庭和访客游戏,则可能会发生这种情况。)


或者,将原始表的值采用一种格式,使它们可以立即汇总在一起:

SELECT Name, COUNT(*) AS Games
FROM (SELECT Visitor AS Name
      FROM England
      WHERE Tier >= 1 AND Season >= 1980
      UNION ALL
      SELECT Home
      FROM England
      WHERE Tier >= 1 AND Season >= 1980)
GROUP BY Name;

暂无
暂无

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

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