建表:

create table t_window(name string,orderdate date,cost int
)
row format delimited fields terminated by ',';

order.csv 文件

jack,2015-01-01,10
tony,2015-01-02,15
jack,2015-02-03,23
tony,2015-01-04,29
jack,2015-01-05,46
jack,2015-04-06,42
tony,2015-01-07,50
jack,2015-01-08,55
mart,2015-04-08,62
mart,2015-04-09,68
neil,2015-05-10,12
mart,2015-04-11,75
neil,2015-06-12,80
mart,2015-04-13,94

load data local inpath '/opt/tmp/order.csv' into table t_window;

窗口函数操作:

1、查询2015-04月购买的人和人数
select distinct name,count(*) over() from t_window where substring(orderdate,1,7)='2015-04';


2、显示购买的总金额
select name,orderdate,cost,sum(cost) over() from t_window;

3、显示月份的总金额
select name,orderdate,cost,sum(cost) over(partition by month(orderdate)) from t_window;

4、综合练习

select name,orderdate,cost,
sum(cost) over() as sample1,--所有行相加
sum(cost) over(partition by name) as sample2,--按name分组,组内数据相加
sum(cost) over(partition by name order by orderdate) as sample3,--按name分组,组内数据累加
sum(cost) over(partition by name order by orderdate rows between UNBOUNDED PRECEDING and current row )  as sample4 ,--和sample3一样,由起点到当前行的聚合
sum(cost) over(partition by name order by orderdate rows between 1 PRECEDING   and current row) as sample5, --当前行和前面一行做聚合
sum(cost) over(partition by name order by orderdate rows between 1 PRECEDING   AND 1 FOLLOWING  ) as sample6,--当前行和前边一行及后面一行
sum(cost) over(partition by name order by orderdate rows between current row and UNBOUNDED FOLLOWING ) as sample7 --当前行及后面所有行
from t_window;


5、ntile函数(分组处理)(执行的话建议单个拎出来执行)

select name,orderdate,cost,ntile(3) over() as sample1,
ntile(3) over(partition by name) as simple2,
ntile(2) over(partition by month(orderdate)) as simple3,
ntile(3) over(partition by name order by cost desc) as simple4
from t_window;


6、rank函数(排名)

select name,orderdate,cost,row_number() over() as r1,
row_number() over(order by name) as r2,
rank() over(order by name) as r3,
DENSE_RANK () over(order by name) as r4
from t_window;


7、lag和lead函数

select name,orderdate,cost,
lag(orderdate,1) over(partition by name order by orderdate) as sample1,
lag(orderdate,1,'1999-10-02') over(partition by name order by orderdate) as sample2,
lead(orderdate,1,'1999-10-02') over(partition by name order by orderdate) as sample3
from t_window;


8、first_value和last_value函数

select name,orderdate,cost,first_value(orderdate) over(partition by name order by orderdate) as time,
last_value(orderdate) over(partition by name order by orderdate) as time
from t_window;

Hive窗口函数经典案例(保姆级案例)相关推荐

  1. Vue+i18n多语言动态设置(保姆级案例教程)

    效果

  2. Hive环境搭建(保姆级教程)

    目录 一.Hive简介 二. Hive环境安装 1. 准备工作 1)安装Hadoop 2)安装MariaDB (1)查看MariaDB安装情况 (2)卸载MariaDB/MySQL (3)安装Mari ...

  3. vue项目 乐橙云(imouplayer.js)--轻应用直播SDK demo案例(保姆级)

    vue项目 乐橙云(imouplayer.js)--轻应用直播SDK demo测试案例(保姆级) 一.所用到的资源(参数) 1.appId (控制台-我的应用-应用信息中获取) 2.appSecret ...

  4. 【预告中】ESP 保姆级教程 疯狂点灯篇 —— 案例:ESP8266 + LED + 按键 + OneNet物联网平台 + Web应用

    快速导读 1.项目说明 2.项目准备 2.1 软件准备 2.2 硬件准备 2.2.1 硬件材料 2.2.2 硬件连线 3.项目细节 3.1 设备端代码 3.2 设备端代码细节过程 4.项目结果 手把手 ...

  5. 动态规划27k字超详细保姆级入门讲解——附DP经典线性、区间、二维图、四维8个模型题解

    动态规划27k字超详细保姆级入门讲解 写在前面: 这篇文章是目前为止我写过最长也是最久的文章,前面关于DP的讲解我查阅了大量的博客资料,学习其他博主对DP的理解,也翻阅了很多经典的纸质书籍,同时做了近 ...

  6. 计算机科学技术中的优秀案例,2014级计算机科学与技术专业ppt 大赛活动案例.doc...

    2014级计算机科学与技术专业ppt 大赛活动案例 2014级计算机科学与技术专业PPT 大赛活动方案 一.竞赛目的 大一新生PPT 设计大赛,旨在巩固理论知识掌握的同时,给学生提供一个展示自己的平台 ...

  7. 全球7大经典火车地铁营销案例

    火车,地铁等人流量庞大的铁路系统,是很多商家青睐的营销平台.今天将带领大家领略全球十大经典的铁路营销案例,各种"开挂"方式绝对超乎你的想象! [日本宜家 这列地铁被我承包了] 近日 ...

  8. 图解大数据 | Hive搭建与应用@实操案例

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/84 本文地址:http://www.showmeai.tech/article-det ...

  9. SQL经典50查询语句案例_4(4、查询姓“李”的老师的个数)

    SQL经典50查询语句案例_4: 4.查询姓"李"的老师的个数: SELECT COUNT(Tname) FROM teacher WHERE Tname LIKE '李%' 在M ...

  10. Hive(三、0)案例之视频网站指标

    Hive(三.0)案例之视频网站常规指标@你宝爷 一.前期准备 1.0.打开集群&服务&客户端 #1)注释掉配置文件内容,这样就不用开启metastore服务啦vim $HIVE_HO ...

最新文章

  1. vue-cli#2.0项目结构分析
  2. 微信小程序:一把瑞士军刀
  3. mysql 中文字符排序规则_mysql中字符集和排序规则说明
  4. python中加等是什么意思_Python创建类的时候,加()和不加有什么区别、联系?
  5. Madagascar编程的Makefile文件配置
  6. 《实施Cisco统一通信管理器(CIPT1)》一2.2 CUCM:单站点部署模型
  7. Linux嵌入式开发_修改镜像文件输出路径
  8. 品鉴B500:艺术对技术无乐不作的反击
  9. 电脑只有一个c盘怎么办_新买的电脑,拿到手只有一个C盘,如何分成两个盘
  10. NRF52832 SDK 14.0.0设置内部32768
  11. 修改IAR for msp430工程名方法
  12. 笔试必备,行测图形推理
  13. io.fabric8.docker-maven-plugin插件使用
  14. Ocean Chain: 海洋渔业的价值连接器?
  15. donald knuth --图灵奖获奖者
  16. oracle 幻影读,索引+事务
  17. CentOS7安装json格式化工具jq
  18. 基于web的医院预约系统的设计与实现(JavaSSM)
  19. 基于java的围棋游戏设计-计算机毕业设计
  20. 对话机器人之Sparrow

热门文章

  1. 如何破解VS2015(使用秘钥)
  2. R6900P/R7000P 梅林固件
  3. oauth样例项目【01】之 使用auth-code进行认证授权
  4. python图像化计算器
  5. 项目测试日报模板整理
  6. 【MATLAB】QPSK调制与解调在MATLAB平台上的实现
  7. chrome 历史版本下载
  8. vue引入阿里云图标
  9. ppt flash无法播放解决方法
  10. bc8-android导航,路畅A6导航刷机固件 4.09 CN-A6-GBDS-BC8-VIN-256-V1.51