SQL - 计算不同列上的重复次数
Posted
技术标签:
【中文标题】SQL - 计算不同列上的重复次数【英文标题】:SQL - count recurrence on different columns 【发布时间】:2020-09-02 12:59:24 【问题描述】:我正在尝试查找不同列上所有值的重复总数。
例如:
有什么建议吗?谢谢
【问题讨论】:
您好,请至少包含一份您尝试解决问题的代码草稿 用您正在使用的数据库标记您的问题。 那张桌子是谁设计的?!? 标记完成。这是一个从 Excel 工作表自动生成的表格... 【参考方案1】:您可以取消透视,然后聚合。如果您的数据库支持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
【讨论】:
谢谢!第二个就像一个魅力!我正在使用 mysql,所以我认为我不能使用横向连接以上是关于SQL - 计算不同列上的重复次数的主要内容,如果未能解决你的问题,请参考以下文章
用SQL计算同一个字符(汉字、字母、数字、表情、符号)连续重复出现的次数