将 SUM 与 UNION 结合使用
Using SUM with UNION
我整天都在研究这个问题,尝试了各种解决方案,但就是无法解决任何问题。我不认为这一切都那么复杂。我有两个具有公共字段的 table,其中之一是 'jobamount'。两个 table 是 'LiveMusic' 和 'VO'。我只是想使用 UNION 获取每个 table 的所有值的总和。所以,我现在的基本陈述是:
SELECT SUM(jobamount) FROM LiveMusic WHERE jobdate LIKE '2019%'
UNION ALL
SELECT SUM(jobamount) FROM VO WHERE jobdate LIKE '2019%'
这很好用,我得到了两个结果,每个 table 的所有值的总和。我如何 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 来查看哪个 运行 对您来说更快。
您可以使用 subquery:
SELECT SUM(X.jobamount)
FROM (
SELECT jobamount FROM LiveMusic WHERE jobdate LIKE '2019%'
UNION ALL
SELECT jobamount FROM VO WHERE jobdate LIKE '2019%'
) X
像这样..
SELECT
SUM(amount_sum)
FROM
(
SELECT
SUM(jobamount) AS amount_sum
FROM
LiveMusic
WHERE
jobdate LIKE '2019%'
UNION ALL
SELECT
SUM(jobamount) AS amount_sum
FROM
VO
WHERE
jobdate LIKE '2019%'
) t
我整天都在研究这个问题,尝试了各种解决方案,但就是无法解决任何问题。我不认为这一切都那么复杂。我有两个具有公共字段的 table,其中之一是 'jobamount'。两个 table 是 'LiveMusic' 和 'VO'。我只是想使用 UNION 获取每个 table 的所有值的总和。所以,我现在的基本陈述是:
SELECT SUM(jobamount) FROM LiveMusic WHERE jobdate LIKE '2019%'
UNION ALL
SELECT SUM(jobamount) FROM VO WHERE jobdate LIKE '2019%'
这很好用,我得到了两个结果,每个 table 的所有值的总和。我如何 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 来查看哪个 运行 对您来说更快。
您可以使用 subquery:
SELECT SUM(X.jobamount)
FROM (
SELECT jobamount FROM LiveMusic WHERE jobdate LIKE '2019%'
UNION ALL
SELECT jobamount FROM VO WHERE jobdate LIKE '2019%'
) X
像这样..
SELECT
SUM(amount_sum)
FROM
(
SELECT
SUM(jobamount) AS amount_sum
FROM
LiveMusic
WHERE
jobdate LIKE '2019%'
UNION ALL
SELECT
SUM(jobamount) AS amount_sum
FROM
VO
WHERE
jobdate LIKE '2019%'
) t