Jav*_* C. 3 mysql sql union sum
我试图在UNION中从不同的SQL查询中获取两行,这可能吗?我所能实现的只是两个独立的行,但我无法对它们进行求和,DB引擎让我告诉*)FROM(SUM旁边的部分)附近的语法中有错误...
这是查询:
SELECT * FROM
(SELECT COUNT(*) as cntclients
FROM
(SELECT DISTINCT clientkey AS clients
FROM <table>
WHERE <conditions...>)
) AS clients
) cntclients
UNION
(SELECT SUM(occurrences) AS cntclientsad
FROM <table2>
WHERE <conditions...>
)
Run Code Online (Sandbox Code Playgroud)
这让我举个例子:
cntclients
----------
901
50
Run Code Online (Sandbox Code Playgroud)
在第一行中添加SELECT SUM(*)FROM而不是SELECT*FROM,并用括号括起两个查询只会引发我提到的错误...
我想要
cntclients <- or whatever name...
----------
951
Run Code Online (Sandbox Code Playgroud)
有什么想法应该如何运作?
Clo*_*use 11
您实际上不需要使用a UNION- 您可以手动将它们一起添加:
SELECT a.countKey + b.sumOccur as total
FROM (SELECT COUNT(DISINCT clientkey) as countKey
FROM <table>
WHERE <conditions>) as a
CROSS JOIN (SELECT SUM(occurrences) as sumOccur
FROM <table2>
WHERE <conditions>) as b
Run Code Online (Sandbox Code Playgroud)
select SUM(cntcol)
from
(
select count(*) as cntcol from sometables
union all
select SUM(occurrances) as cntcol from somemoretables
) ctquery
Run Code Online (Sandbox Code Playgroud)