【一点分享】Mysql新造的轮子太好用了,以前怎么没发现,json函数妙不可言。

上篇文章尝试用with递归解决了数组拆分为多行的问题。今天再次尝试使用json_函数解决。昨天预留的作业放在本文第二部分进行实现。

一、json函数

1、准备json数据

由于原表没有json格式的列,先构造json格式的电影类型字段,如下:

2、验证json数据

json_valid()、json_length()

3、数组拆分

前述将字段加工为json格式后,用json函数json_table(),也是非同凡响呀,更简洁,如下:

二、作业解答

昨天预留了4道题目,按此前的sql方法都能解决,现也结合今日的json函数来实现一回,加深理解。应某些朋友的反馈,只显示了影视的id字段mid而没有把影视的名称显示出来,今天满足这些朋友的需求。

1、作业题1

如下实现,用的left_join,其实用inner join也一样,因为都是对同一份数据进行group by year得到的2个中间表,年份列自然是相同的。更严谨地,应该用日期维表再对总体结果进行left join下,保证每年都有的完整性,不缺失数据。去翻翻此前的日期维表相关文章。

2、作业题2

真得有19位演员有过多部高分影视作品(这只是部分数据),厉害了。

3、作业题3

对比分析不好做,需要先列出各类对比指标,tk实际工作中还挺头疼的。本题简要处理,用平均评分、平均评分人数作为对比指标。按现在的样本数据看,联合导演的这么强吗。

4、作业题4

再次复习json_table()的用法,引入了快照概念的维度表(后续数据仓库专栏文章会有介绍,敬请关注)。p.s. 样本的按国家地区的分布统计结果,还是挺令人咂舌的。

三、总结

json系列的函数,确实解决了不少棘手的问题,更多其json家族函数,后续文章再分享。

Mysql越来越多的新特性值得深挖,这是在不断的造轮子,来缓解此前我们虽会变通但却冗长的实现困难。这就是响应用户的声音,在迭代进化,是有前途的。

这是第8篇Mysql使用的文章,示例代码行数也迎来了1000行大关,不容易,这是会生长的代码呀。我们听过经典的1万小时定律,也要知道代码的1万行定律。预测下,突破10000行sql代码时,咱们的【一点分享】会到哪个阶段?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值