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
我正在尝试查找不同列上所有值的重复总次数。
例如:
有什么建议吗?谢谢
您可以逆透视,然后聚合。如果您的数据库支持 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