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 有一些方法可以很好地处理这个问题。

4

2 回答 2

1

尝试这个

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

在这里演示

于 2013-06-04T22:39:04.047 回答
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
于 2013-06-04T22:16:04.173 回答