mysql 行转列 Demo

最近遇到了需要统计标签的浏览量,但是每个label_name下包含了两个三个不等的标签ID并且以逗号隔开
在这里插入图片描述(图1)
类似这种,这时候需要把id 拆分开来分别对应后面的浏览量,有个类似固定写法的方法:例如
统计的表名为temp 需要统计,拆分的字段为label_name,最后需要函数处理的字段为view_count(浏览量)

套入方法为:
SELECT
tp.id,
tp.label_name,
tp.view_count,
substring_index(substring_index(tp.label_name,‘,’,b.help_topic_id + 1),‘,’,- 1) as label_id
FROM
temp as tp
JOIN mysql.help_topic b ON b.help_topic_id < (length(tp .label_name) - length(REPLACE(tp.label_name, ‘,’, ‘’)) + 1) ORDER BY tp.view_count DESC;

为了让大家看清楚 我也打印了a.label_name
在这里插入图片描述(图二)
注意观察图二id为194的数据(图一中最后一行数据就是没处理之前的id为194的数据,懒得在截图了),两个id在label_id列已经拆分,并且对应的浏览量也分别对应 此时以这个结果集再去统计就会简单多了 无非就是group by 和 sum 了。希望对大家有帮助

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值