我整天都在研究,尝试各种解决方案,但无济于事。我不认为这那么复杂。我有两个具有公共字段的表,其中之一是“ jobamount”。这两个表是“ LiveMusic”和“ VO”。我只是想使用UNION获取每个表的所有值的总和。因此,我现在的基本声明是:

SELECT SUM(jobamount) FROM LiveMusic WHERE jobdate LIKE '2019%'
UNION ALL
SELECT SUM(jobamount) FROM VO WHERE jobdate LIKE '2019%'


就我得到两个结果而言,这很好,每个表中所有值的总和。我怎么SUM这些,GROUP它们,什么?我只需要将它们组合成一个。非常感谢!

最佳答案

您可以求和:

SELECT SUM(jobsum) AS totalsum FROM (
SELECT SUM(jobamount) AS jobsum FROM LiveMusic WHERE jobdate LIKE '2019%' UNION ALL SELECT SUM(jobamount) AS jobsum FROM VO WHERE jobdate LIKE '2019%'
) sums;


或将所有并集后的值求和:

SELECT SUM(jobamount) AS totalsum FROM (
SELECT jobamount FROM LiveMusic WHERE jobdate LIKE '2019%' UNION ALL SELECT jobamount AS jobsum FROM VO WHERE jobdate LIKE '2019%'
) jobamounts;


您可以在两个查询上运行EXPLAIN,以查看哪个查询运行得更快。

关于mysql - 将SUM与UNION一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59550340/

10-13 02:03