如何添加两个被联合在一起的查询

如何添加两个被联合在一起的查询

问题描述:

我试图通过人一起添加两个组,这是我的代码:如何添加两个被联合在一起的查询

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 

(这意味着增加游戏的国内和访问者NUM在一起)

+0

你应该改善的问题,添加格式等 –

+0

通过格式化,你的意思是......? –

计算机科学中的所有问题都可以通过另一个间接层面来解决。
- David Wheeler

您想同时添加相同名称的值吗?只要使用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; 

(UNION没有ALL会删除重复的,如果有相同数量的本地和访问者游戏可能出现这种情况)


另外,带原始表的形式,让他们都来一次汇总值:

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;