https://mp.weixin.qq.com/s/pWf3XLtK5cxcGORaMHieJw https://mp.weixin.qq.com/s/9LRvrOmqZoahoOm8dFuryg 日期,集合,判断,字符串,数学函数
NVL判断是否为null,替换
NVL(E1, E2)的功能为:如果E1为NULL,则函数返回E2,否则返回E1本身。 NVL(isclick, 0) as isclickcollect_set去除重复元素;collect_list不去除重复元素;需要进行group by
select phone,collect_list(user_id) ,collect_set(user_id) from a group by phoneCoalesce函数,并且发现它比ISNULL更加强大,返回第一个非空的值。 SELECT COALESCE(NULL, NULL, GETDATE()) 必须最少有一个非空的值,都是空会报错
语法: row_number() over (partition by col_list1 order by col_list2) rank() over(partition by col_list1 order by col_list2) 说明:首先根据col_list1分组,在分组内部根据col_list2排序,row_number()函数计算的值表示每组内部排序后的顺序编号,组内连续的唯一的;rank() over()函数则是跳跃排序,序号不唯一,即当有数据值值相同时,并列, 当遇到不同的数据,其序号为上一个数据的序号加上该序号的个数。如两个并列第一,序列号为(1,1,3…)。
https://blog.csdn.net/SunnyYoona/article/details/62894761
explode()接受数组(或映射)作为输入,并将数组(映射)的元素作为单独的行输出
对hive表中某一列进行split之后,想对其转换成1 to N的模式,即一行转多列
select game_id, user_id from table lateral view explode(split(userl_ids,'\\[\\[\\[')) snTable as user_id -- https://blog.csdn.net/guodong2k/article/details/79459282 select goods_id2,sale_info from explode_lateral_view LATERAL VIEW explode(split(goods_id,','))goods as goods_id2;要看所有年份的总利润的话,可能还需要格外的SUM计算,其实不用那么麻烦,WITH ROLLUP 就可以帮你解决此问题
SELECT year, SUM(profit) AS profit FROM sales GROUP BY year WITH ROLLUP;为字符查找函数,其功能是查找一个字符串在另一个字符串中首次出现的位置
如果String2在String1中没有找到,instr函数返回0。 示例: SELECT instr('syranmo','s') FROM dual; -- 返回 1 SELECT instr('syranmo','ra') FROM dual; -- 返回 3 SELECT instr('syran mo','at',1,2) FROM dual; -- 返回 0Select substr(name,0,3) as subname from lhtstudent;