Mysql SQL计数一个值在多列中出现多少次?
我在mysql数据库中有两列,我想计算一个名称在这两列中出现的次数。COUNT函数本身不适用于我,因为它只计算一列中的总数 MySql列:Mysql SQL计数一个值在多列中出现多少次?,mysql,sql,Mysql,Sql,我在mysql数据库中有两列,我想计算一个名称在这两列中出现的次数。COUNT函数本身不适用于我,因为它只计算一列中的总数 MySql列: +-----------------+--------------+ | Member1 | Member2 | +-----------------+--------------+ | John | Bill | | Bill | John | | Jo
+-----------------+--------------+
| 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”语句进行尝试。可能重复