Mysql SQL计数一个值在多列中出现多少次?

Mysql SQL计数一个值在多列中出现多少次?,mysql,sql,Mysql,Sql,我在mysql数据库中有两列,我想计算一个名称在这两列中出现的次数。COUNT函数本身不适用于我,因为它只计算一列中的总数 MySql列: +-----------------+--------------+ | Member1 | Member2 | +-----------------+--------------+ | John | Bill | | Bill | John | | Jo

我在mysql数据库中有两列,我想计算一个名称在这两列中出现的次数。COUNT函数本身不适用于我,因为它只计算一列中的总数

MySql列:

+-----------------+--------------+
| Member1         | Member2      |
+-----------------+--------------+
| John            | Bill         | 
| Bill            | John         |
| Joe             | John         |
| Bill            | Joe          |
| John            | Steve        |
+-----------------+--------------+
期望输出:

+-----------------+--------------+
| Member          |     Total    |
+-----------------+--------------+
| John            | 4            | 
| Bill            | 3            |
| Joe             | 2            |
| Steve           | 1            |
+-----------------+--------------+

有什么想法吗??谢谢

您可以使用以下命令,使用
UNION ALL
将多个成员列解压为一个列。一旦它位于单列中,就可以应用聚合函数
count

select member, count(*) Total
from 
(
  select member1 as member
  from yt
  union all
  select member2
  from yt
) d
group by member
order by total desc;

请参见

如果单个名称在1列中出现2次或更多次,则上述sql结果将是错误的。 在子查询中使用“distinct”语句进行尝试。

可能重复