52

次のような 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 は引き続き正しく機能します)。ユニオンオールで試しましたが、うまくいきません。私は何が欠けていますか?

4

4 に答える 4

100
SELECT tem.name, COUNT(*) 
FROM (
  SELECT name FROM results
  UNION ALL
  SELECT name FROM archive_results
) AS tem
GROUP BY name
ORDER BY name
于 2009-08-12T14:52:52.567 に答える
9

目標ですか…

  1. 両方のテーブルで "Bob Jones" のすべてのインスタンスをカウントするには (たとえば)
  2. "Bob Jones" のResultsすべてのインスタンスを 1 つの行に数え、"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
于 2009-08-12T14:51:27.513 に答える
0
select T1.name, count (*)
from (select name from Results 
      union 
      select name from Archive_Results) as T1
group by T1.name order by T1.name
于 2020-12-15T21:18:17.377 に答える