会有些不一样
1 例如使用SQL 之前,要了解用了那个库,use jz_daojia
2 使用GET_JSON_OBJECT 函数等,以及参数 匹配 $.childBrithDay
挺有意思的。新玩意哦
--odps sql --********************************************************************-- --author:jz_admin --create time:2019-11-11 10:14:49 --********************************************************************-- -- 这是什么意思? -- 获取线索id,以及线索标签。 use jz_daojia; SELECT a.id ,CONCAT_WS(',', COLLECT_SET(b.dict_value)) AS clue_labels FROM ( SELECT a.id ,b.clue_label FROM ( SELECT a.id ,GET_JSON_OBJECT(a.prop, '$.busSnapshotDto.clueLable') clue_label FROM o_jz_clue_t_sale_clue a WHERE dt = '${bdp.system.bizdate}' ) a LATERAL VIEW EXPLODE(SPLIT(clue_label, ',')) b AS clue_label ) a LEFT JOIN ( SELECT * FROM o_jz_clue_t_dict WHERE dt = '${bdp.system.bizdate}' AND type IN ('target_unconform_label', 'clue_label','target_conform_label') ) b ON a.clue_label = b.dict_key GROUP BY a.id; -- 获取 SELECT a.* ,GET_JSON_OBJECT(a.prop, '$.busSnapshotDto.clueLable') clue_label ,GET_JSON_OBJECT( GET_JSON_OBJECT(prop,'$.busSnapshotDto') ,'$.childBrithDay' ) AS childbrithday ,CASE WHEN a.category_id = 205 THEN '月嫂' WHEN a.category_id = 270 THEN '育儿嫂' WHEN a.category_id = 212 THEN '保姆' ELSE '其他' END AS category_name FROM o_jz_clue_t_sale_clue a WHERE dt = '${bdp.system.bizdate}' AND delete_flag = 0 AND source_id != 100000680
基础的GET_JSON_OBJECT函数运用:
--odps sql --********************************************************************-- --author:jz_admin --create time:2019-11-11 14:27:08 --********************************************************************--
获取职员的职业。
use jz_daojia; SELECT us.* , GET_JSON_OBJECT(us.additional_info,'$.jobTitle') as title_s FROM d_sys_user as us WHERE us.name LIKE "喜" LIMIT 10 ;