君子之泽,五世而斩💎
10. lead(col,n, default_val):某一列往后第n行数据
13. percent_rank():这条数据在这个数据中的百分之多少,一般也是配合有序窗口使用
14. rank():排序函数(排序相同时会重复,总数不会变)
15. dense_rank()【排序相同时会重复,总数会减少】、row_number()【会根据顺序计算】
17. date_add(current_date(),100) 返回当前日期后100天的日期
18. date_sub(current_date(),100) 返回当前日期前100天的日期
19. datediff(date1,date2) 返回两个日期之间的日期差
NVL:给空字段赋值
查出各部门中男女的个数:
case when 分组统计
sum(case sex when '男' then 1 else 0 end)
行转列:
列转行:
固定写法,记住就行:
lateral view
explode(split(category,',')) tbl as cate;
综合练习:
查询2017年四月份购买过商品的人:
查询顾客的购买明细及月购买总额:
将每个顾客的cost按照日期进行累加:
求明细,以及每个月有哪些顾客来过:
查询每个顾客上次的购买时间:
lag(col,n,default_val):某一列往前第n行数据,他一般配合有序窗口使用。
lead(col,n, default_val):某一列往后第n行数据
ntile(n): 把数据按行分为n组,返回组号
求前20%的订单数据:
配合ntile()使用
percent_rank():这条数据在这个数据中的百分之多少,一般也是配合有序窗口使用
rank():排序函数(排序相同时会重复,总数不会变)
dense_rank()【排序相同时会重复,总数会减少】 、row_number()【会根据顺序计算】
current_date() 返回当前时间
date_add(current_date(),100) 返回当前日期后100天的日期
date_sub(current_date(),100) 返回当前日期前100天的日期
datediff(date1,date2) 返回两个日期之间的日期差
连续两天购物的人: