面试题目:表中有两列数据,一列是userid,一列是用户标签tag,标签类别总共有10个,每个用户可以拥有多个不同的标签,不同的标签之间用逗号隔开。问:输出每个标签的用户数,谁拥有的标签最多,哪个标签拥有用户最多?
![765d04aad1a9ded1e2acfa20c5bbf4c7.png](https://img-blog.csdnimg.cn/img_convert/765d04aad1a9ded1e2acfa20c5bbf4c7.png)
分析:表的内容如上,关键在于对tag列进行分割,需要采用如下这个具有连续数字序列的辅助表进行联结。
![376a4f618fe8e1fedf8be3e3ca101c4b.png](https://img-blog.csdnimg.cn/img_convert/376a4f618fe8e1fedf8be3e3ca101c4b.png)
联结过程:
首先计算每个用户的标签个数,使用length()和replace()方法获取标签个数((length(tag) - length(replace(tag,',',''))) + 1)。
接着,使用mysql自带的`help_topic`表中的`help_topi