如何计算一个值在多个列中的总外观?
原始表:
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有办法很好地处理这个问题。
最佳答案
这里有一种使用UNION ALL
的方法:
select name, count(1) cnt
from (
select col1 as name from yourtable
union all
select col2 from yourtable
) t
group by name
SQL Fiddle Demo
结果:
NAME CNT
-----------
beth 1
don 1
jon 1
lisa 3
mike 1
sam 3