如果要方便统计, 这种设计相当狗血。。。
你现在只能用,折分,变成多行数据, 放到临时表, 然后对这个临时表进行分类统计。 写个存储过程吧
是啊,不忍吐槽。
我想办法拆分出来
请提供你要的结果示例?【兴趣:人数】是这样的数据吗?
是的。
@愤怒的TryCatch: 将单个用户的兴趣,通过,拆分,形成类似
用户1 排鼓
用户1 堂鼓(大鼓)
的表结构,然后再使用group by 就可以了。
@幻天芒: 这个方法简单,直接
@Froyo: :),个人觉得是最普遍的做法。
1、这个有什么难的? 难在哪儿?就算呗。
2、这个案例充分说明了,不管什么样的数据库,都挡不住人类的智慧。
大叔,帮忙提供一个解决方案呗。
@愤怒的TryCatch: 解决什么问题?
好吧,我好好说话。
1、什么叫问题,你需要2秒解决的,现在是2小时,这是问题。
如果你两天计算出来的都可以接受,2小时就不是问题。
2、什么是你可以接受的,修改数据库?慢?还是钱?还是修改软件?
你做了什么努力,卡在什么上面?
3、有人修改软件是为了好看,有人是为了快速,有人是为了稳定,有人是为了百年大计,
你是为了什么?
4、环境、需求然后才是问题,你数据库一共就6条数据,看一眼就算出来了,不用使用软件的。
5、没有一种放之天下而皆准的解决方案。有的客户只肯出10万,有的客户肯出1千万,你认为解决方案会一样吗?
行转列统计计算 case when else end
如果是我的话,我肯定会用C#这种逻辑程序语言来处理。
我读取每个用户的信息。
如果读到一个用户,比如A用户,他的兴趣爱好是 弹琴,跑步,上网。我就在我的D盘中建三个文件夹,分别为弹琴,跑步,上网。然后再在 每个文件夹中建一个txt的文件,文件名为这个用户的ID。
然后再读取B用户,如果他的爱好是弹琴,飙车,打架。我就再在D盘中建文件,因为弹琴已经存在在,就不用重建了,只需要在弹琴文件夹中 加上这个B用户的ID就行了。然后再建飙车,打架文件夹。然后再在这两个文件夹中加上B用户的txt文件。
以此类推。最后就可以根据文件夹的个数,和每个文件夹中的个数来判断 百分比了
写IO是相当耗时的操作。