问题背景:
需求:获取商品在曝光时,用户看到的价格
基本步骤:从埋点表里取出map类型的a字段,再从a字段里取出fee对应的键值,最后取出键值里的特价转化成double类型。
笔记:
- map数据类型在查询时需要指定键名.
-- 正确做法
select a['fee'] as fee
from t;
-- 错误做法
-- 不会返回整个map字段
select a
from t
直接select 字段名返回的内容如下
- 多层map如何处理?/ 字符串如何转为json?
在业务中,'fee' 字段属于埋点公共参数 'content.json' 里的一个key。content.json里还有别的字段,比如shop_id。
有的埋点会直接将整个content.json作为一个键值对存到数据库里,即 a ['content_json']。
有的埋点会将content.json里的各个字段拆出来分别存到数据库里。
不同的埋点对应不同的event_id,甚至有的时候同一个event_id都有两种不同的存储情况。
但是业务分析不需要考虑埋点表是怎么存储的。此时不仅需要cover到两种情况,而且需要将string类型的js