2013-06-04 52 views
1

如何計算多列中值的總外觀?計算表中任意列的值的外觀

原始表:

col1 col2 
---- ---- 
don sam 
jon sam 
mike lisa 
sam lisa 
lisa beth 

結果:

name appearances 
---- ----------- 
don 1 
sam 3 
jon 1 
mike 1 
lisa 3 
beth 1 

我試着寫一個加入其中獲得總數爲子查詢,但是這似乎很尷尬。我假設MySQL有一些方法可以很好地處理這個問題。

回答

1

下面是使用UNION ALL一個辦法:

select name, count(1) cnt 
from (
    select col1 as name from yourtable 
    union all 
    select col2 from yourtable 
) t 
group by name 

結果:

NAME CNT 
----------- 
beth 1 
don 1 
jon 1 
lisa 3 
mike 1 
sam 3 
0

試試這個

select name , count(*) as appearances from 
(
    select col1 as name from Raw 
    union all 
    select col2 as name from Raw 
)t 
group by name 

DEMO HERE