nvl() 函数
nvl(score,0) 判断score的值是否为空,如果为空则为0,0为默认值,否则为score本身
split()函数
split(skin_code,' /') 对skin_code切割字符串
| skin_code |
| '1_ABCD/3_ABCD/5_ABCD' |
| '6_ABCD/5_ABCD/3_ABCD' |
执行函数split(skin_code,' /')
| skin_code |
| [1_ABCD,3_ABCD,5_ABCD] |
| [6_ABCD,5_ABCD,3_ABCD] |
行转列
lateral view
实例
| page_id | adid_list |
| from_page | [1,2,3] |
| concat_page | [3,4,5] |
SELECt pageid, adid
FROM pageAds LATERAL VIEW explode(adid_list) adTable AS adid;
运行结果
| page_id | addid |
| from_page | 1 |
| from_page | 2 |
| from_page | 3 |
| concat_page | 3 |
| concat_page | 4 |
| concat_page | 5 |
concat()数据合并
concat(1,2)
执行结果 1,2
concat('1','-','2')
执行结果 1-2
列转行对数据合并collect_list/collect_set
表格
| name | movie_name | date |
| 张三 | 大唐双龙传 | 20180516 |
| 李四 | 天下无贼 | 20180516 |
| 张三 | 神探狄仁杰 | 20180516 |
| 李四 | 霸王别姬 | 20180516 |
| 李四 | 霸王别姬 | 20180516 |
| 王五 | 机器人总动员 | 20180516 |
| 王五 | 放牛班的春天 | 20180516 |
| 王五 | 盗梦空间 | 20180516 |
按用户分组,取出每个用户每天看过的所有视频的名字:
select username, collect_list(video_name) from t_visit_video group by username ;
| name | movie_name |
| 张三 | ["大唐双龙传","神探狄仁杰"] |
| 李四 | ["天下无贼","霸王别姬","霸王别姬"] |
| 王五 | ["机器人总动员"] |
| select username, collect_set(video_name) from t_visit_video group by username; |



