2016-06-27 13 views
0

私は10個のテーブルすべてに「エラーメッセージ」という列があります。エラーメッセージごとに固有のIDがあります。私はすべてのテーブルの間で上位5の最も頻繁なエラーを返すスクリプトを書く必要があります。ここに、現在の構造の例と希望の結果があります。SQL COUNT GROUP BY複数のテーブル

テーブル

Table 1 
**Error Message   
    Mes 1    
    Mes 2     
    Mes 3      

Table 2 
**Error Message  
    Mes 1 
    Mes 2    
    Mes 3    
    Mes 4 
    Mes 4 
    Mes 4 
    Mes 4      

Table 3 
**Error Message       
    Mes 5 
    Mes 1     
    Mes 6 
    Mes 2     

望ましい結果

**Error Message  Error Count**  
    Mes 4    4 
    Mes 1    3 
    Mes 2    3 
    Mes 3    2 
    Mes 5    1 

答えて

4
select errMsg, count(*) as errCnt 
from 
(
    select errMsg from table1 
    union all 
    select errMsg from table2 
    union all 
    select errMsg from table3 
    ... 
) tmp 
group by errMsg 
order by count(*) desc 

あなたのDBエンジンによってlimit 5またはtop 5またはROWNUM <= 5

+0

のいずれかを追加ありがとうございます!これは動作します:) – LostInTheSauce