SQL - 计算不同列的重复次数

SQL - count recurrence on different columns

我正在尝试查找不同列上所有值的重复总次数。

例如:

有什么建议吗?谢谢

您可以逆透视,然后聚合。如果您的数据库支持 values() 和横向连接:

select x.name, count(*) cnt
from mytable
cross join lateral (values (name1), (name2), (name3)) as x(name)
group by x.name

一种更便携(尽管效率较低)的方法是 union all:

select name, count(*) cnt
from (
    select name1 as name from mytable
    union all select name2 from mytable
    union all select name3 from mytable
) x
group by name