SQLクエリがあります。次のようになります。
select name, count (*) from Results group by name order by name
もう1つはアーカイブ結果テーブルからロードされますが、フィールドは同じです。
select name, count (*) from Archive_Results group by name order by name
1つのクエリで2つをどのように結合しますか? (したがって、group byは正しく機能します)。私はすべてユニオンで試しましたが、うまくいきません。私は何が欠けていますか?
select tem.name, count(*)
from(select name from results
union all
select name from archive_results) as tem
group by name
order by name
サポートするインデックスがあり、比較的高いカウントを持っている場合、このようなものは、提案されたソリューションよりもかなり速い可能性があります。
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;
あなたの目標は...
Results
の「Bob Jones」のすべてのインスタンスと、別の行のArchive_Results
の「Bob Jones」のすべてのインスタンスをカウントするには?それが#1だと仮定すると、次のようなものが欲しいでしょう...
SELECT name, COUNT(*) FROM
(SELECT name FROM Results UNION ALL SELECT name FROM Archive_Results)
GROUP BY name
ORDER BY name