我有一个SQL查询,看起来像这样:
select name, count (*) from Results group by name order by name
Run Code Online (Sandbox Code Playgroud)
和另一个相同的,从归档结果表加载,但字段是相同的.
select name, count (*) from Archive_Results group by name order by name
Run Code Online (Sandbox Code Playgroud)
如何在一个查询中将两者结合起来?(因此,群组仍将正常运作).我尝试使用union all,但是它不起作用.我错过了什么?
krd*_*zni 75
SELECT tem.name, COUNT(*)
FROM (
SELECT name FROM results
UNION ALL
SELECT name FROM archive_results
) AS tem
GROUP BY name
ORDER BY name
Run Code Online (Sandbox Code Playgroud)
如果您有支持索引和相对较高的计数,这样的事情可能比建议的解决方案快得多:
SELECT name, MAX(Rcount) + MAX(Acount) AS TotalCount
FROM (
SELECT name, COUNT(*) AS Rcount, 0 AS Acount
FROM Results GROUP BY name
UNION ALL
SELECT name, 0, count(*)
FROM Archive_Results
GROUP BY name
) AS Both
GROUP BY name
ORDER BY name;
Run Code Online (Sandbox Code Playgroud)
你的目标是......
Results
一行中"Bob Jones"的所有实例和"Bob Jones"的所有实例统计
Archive_Results
在一个单独的行中?假设它是#1你想要的东西像......
SELECT name, COUNT(*) FROM
(SELECT name FROM Results UNION ALL SELECT name FROM Archive_Results)
GROUP BY name
ORDER BY name
Run Code Online (Sandbox Code Playgroud)