[英]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.