如何计算一个值在多个列中的总外观?
原始表:

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

10-04 16:54