首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Hive常用函数案例实操

Hive常用函数案例实操

作者头像
阿年、嗯啊
发布2022-11-02 18:18:36
发布2022-11-02 18:18:36
1.2K0
举报
文章被收录于专栏:阿年的数据梦阿年的数据梦

君子之泽,五世而斩💎

目录:

1. NVL:给空字段赋值

2. 分组统计,查出各部门中男女的个数:

3. 行转列:

4. 列转行

5. 综合练习

6. 查询顾客的购买明细及月购买总额

7. 将每个顾客的cost按照日期进行累加

8. 求明细,以及每个月有哪些顾客来过

9. 查询每个顾客上次的购买时间

10. lead(col,n, default_val):某一列往后第n行数据

11. ntile(n): 把数据按行分为n组,返回组号

12. 求前20%的订单数据

13. percent_rank():这条数据在这个数据中的百分之多少,一般也是配合有序窗口使用

14. rank():排序函数(排序相同时会重复,总数不会变)

15. dense_rank()【排序相同时会重复,总数会减少】、row_number()【会根据顺序计算】

16. current_date() 返回当前时间

17. date_add(current_date(),100) 返回当前日期后100天的日期

18. date_sub(current_date(),100) 返回当前日期前100天的日期

19. datediff(date1,date2) 返回两个日期之间的日期差

20. 连续两天购物的人

NVL:给空字段赋值

查出各部门中男女的个数:

代码语言:javascript
复制
case when 分组统计
sum(case sex when '男' then 1 else 0 end)

行转列:

列转行:

代码语言:javascript
复制
固定写法,记住就行:
lateral view
	explode(split(category,',')) tbl as cate;

综合练习:

sql如下:

查询2017年四月份购买过商品的人:

查询顾客的购买明细及月购买总额:

将每个顾客的cost按照日期进行累加:

求明细,以及每个月有哪些顾客来过:

查询每个顾客上次的购买时间:

代码语言:javascript
复制
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) 返回两个日期之间的日期差

连续两天购物的人:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录:
    • NVL:给空字段赋值
    • 查出各部门中男女的个数:
    • 行转列:
    • 列转行:
    • 综合练习:
    • sql如下:
      • 查询2017年四月份购买过商品的人:
      • 查询顾客的购买明细及月购买总额:
      • 将每个顾客的cost按照日期进行累加:
      • 求明细,以及每个月有哪些顾客来过:
      • 查询每个顾客上次的购买时间:
      • lead(col,n, default_val):某一列往后第n行数据
      • ntile(n): 把数据按行分为n组,返回组号
      • 求前20%的订单数据:
      • percent_rank():这条数据在这个数据中的百分之多少,一般也是配合有序窗口使用
      • rank():排序函数(排序相同时会重复,总数不会变)
      • dense_rank()【排序相同时会重复,总数会减少】 、row_number()【会根据顺序计算】
      • current_date() 返回当前时间
      • date_add(current_date(),100) 返回当前日期后100天的日期
      • date_sub(current_date(),100) 返回当前日期前100天的日期
      • datediff(date1,date2) 返回两个日期之间的日期差
      • 连续两天购物的人:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档