hive sql基础了解

   会有些不一样

  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 ;
原文地址:https://www.cnblogs.com/sakura3/p/11833872.html