如何使用UNION添加两个不同查询的结果

时间:2017-08-01 22:17:50

标签: mysql sql union aggregate-functions

我有这两个问题:

SELECT SUM(H) FROM stats_2017
UNION
SELECT SUM(H) FROM my_career_stats;

第一个查询给出70的结果,第二个查询给出713的结果。我想要70和713的总和,但是无法得到它。你有什么建议吗?

3 个答案:

答案 0 :(得分:0)

SELECT sum(a)
FROM (
  SELECT sum(h) as a FROM stats_2017
  UNION SELECT sum(h) as a FROM my_career_stats) as tmptbl

说明:

你在另一个选择的内部进行两个查询。有了它,你可以将两个结果相加。

答案 1 :(得分:0)

你已经有两行了。现在总结一下:

SELECT sum(sum_) as total FROM 
  (
    SELECT SUM(H) as sum_ FROM stats_2017 
    UNION 
    SELECT SUM(H) as sum_ FROM my_career_stats
  ) sum_table

答案 2 :(得分:0)

你的联合查询最终会给你两条记录,每条记录一条记录。因为您只选择单个值,所以可以省略GROUP BY子句。我使用了SUM()函数,并使用内联子查询将其添加到类似的语句中。

SELECT SUM(H) + (SELECT SUM(H) FROM my_career_stats)
FROM stats_2017