当前位置: 首页 > news >正文

网站公众号信息化建设工作计划北京免费自助建站模板

网站公众号信息化建设工作计划,北京免费自助建站模板,网站投放广告教程,教学系统设计 网站开发目录 1.开窗函数的定义 2.数据准备 3.开窗函数之排序 需求:用三种排序方法查询学生的语文成绩排名,并降序显示 4.开窗函数分组 需求:按照科目来分类,使用三种排序方式来排序学生的成绩 5.聚合函数与分组配合使用 6.聚合函数同时和分组以及排序关键字配合使用 --需求1…目录 1.开窗函数的定义 2.数据准备 3.开窗函数之排序 需求:用三种排序方法查询学生的语文成绩排名,并降序显示 4.开窗函数分组 需求:按照科目来分类,使用三种排序方式来排序学生的成绩 5.聚合函数与分组配合使用 6.聚合函数同时和分组以及排序关键字配合使用 --需求1求出每个用户的总pv数,展示所有信息  默认第一行到最后一行 --需求2求出每个用户截止到当天累积的总pv数  默认第一行到当前行 做题思路,开窗函数核心:保证输出结果的记录数和输入的数据记录数一致  7.窗口范围控制 1.默认第一行到当前行 2.第一行到当前行,等效于rows between ..不写,默认就是第一行到当前行 3.向前3行到当前行 4.向前3行 向后1行 5.当前行到最后一行,第一行到最后一行 8.其他函数 1.ntile平分: 注意ntile规则:尽量平均分配 优先满足最小(编号1)的桶彼此最多不相差1个。 --需求统计每个用户pv数最多的前3分之1天。--理解将数据根据cookieid分 根据pv倒序排序 排序之后分为3个部分 取第一部分 1.开窗函数的定义 - 窗口可以理解为操作数据的范围窗口有大有小本窗口中操作的数据有多有少。 - 可以简单地解释为类似于聚合函数的计算函数但是通过GROUP BY子句组合的常规聚合会隐藏正在聚合的各个行最终输出一行 -而窗口函数聚合后还可以访问当中的各个行并且可以将这些行中的某些属性添加到结果集中。 开窗函数格式:  select ... 开窗函数 over(partition by 分组字段名 order by 排序字段名 asc|desc) ... from 表名;  -- 如果有分组操作,select后的字段要么在聚合函数内,要么在group by 后出现 -- 开窗函数: hive和mysql8都能使用 -- 开窗函数本质在表后新增了一列 -- 聚合开窗函数: max min sum avg count 2.数据准备 数据文件score.txt --数据准备 create table students(s_id int,s_name string,subject string,score double,class string )row format delimited fields terminated by \t;--加载数据 load data inpath /input/score.txt into table students;--验证数据 select * from students; 3.开窗函数之排序 --查询最高分的学生 select max(score) from students; -- 99 -- 聚合函数配合over()使用,也可以叫开窗函数--查询最高分的学生,并附上他的名字 select s_name,max(score) over() --每一个学生都会匹配一个最高分,数据不正确 from students;-- 排序开窗函数: row_number  rank  dense_rank -- 排序函数必须配合over(order by 排序字段 asc|desc) row_number: 巧记: 1234   特点: 唯一且连续 dense_rank: 巧记: 1223   特点: 并列且连续 rank   : 巧记: 1224   特点: 并列不连续 需求:用三种排序方法查询学生的语文成绩排名,并降序显示 select s_name,subject,score,row_number() over (order by score desc ) ,--唯一且连续dense_rank() over (order by score desc ) ,--并列且连续rank() over (order by score desc ) --并列不连续 from students where subject 语文; 4.开窗函数分组 -- 开窗函数分组 -- 注意不能用group by ,需要使用partition by,可以理解成partition by是group by的子句 -- 演示排序函数和分组配合使用: 先分组再组内排序 需求:按照科目来分类,使用三种排序方式来排序学生的成绩 select *,row_number() over (partition by subject order by score desc ),dense_rank() over (partition by subject order by score desc ),rank() over (partition by subject order by score desc ) from students;5.聚合函数与分组配合使用 -- 演示聚合函数和分组配合使用 -- 普通分组 select s_name,max(score) from students group by s_name; 查询每个学生的信息,按照文理科分类,以及平均分 -- 开窗分组 select *,avg(score) over(partition by class) from students; 6.聚合函数同时和分组以及排序关键字配合使用 -- 演示聚合函数同时和分组以及排序关键字配合使用 -- 数据准备 ---建表并且加载数据 create table website_pv_info(cookieid string,createtime string, --daypv int ) row format delimited fields terminated by ,;-- 建表 create table website_url_info (cookieid string,createtime string, --访问时间url string --访问页面 ) row format delimited fields terminated by ,;-- 加载数据 load data inpath /input/website_pv_info.txt into table website_pv_info; load data inpath /input/website_url_info.txt into table website_url_info;-- 查询数据 select * from website_pv_info; select * from website_url_info; --需求1求出每个用户的总pv数,展示所有信息  默认第一行到最后一行 cookie是记住用户记录的一个文件,代表一个用户 select *,sum(pv) over (partition by cookieid) from website_pv_info; --需求2求出每个用户截止到当天累积的总pv数  默认第一行到当前行 --sum(...) over( partition by... order by ... )在每个分组内连续累积求和 select *,sum(pv) over (partition by cookieid order by createtime) from website_pv_info; 做题思路,开窗函数核心:保证输出结果的记录数和输入的数据记录数一致  7.窗口范围控制 rows between    - preceding往前    - following往后    - current row当前行    - unbounded起点    - unbounded preceding 表示从前面的起点  第一行    - unbounded following表示到后面的终点  最后一行 1.默认第一行到当前行 select cookieid,createtime,pv,sum(pv) over(partition by cookieid order by createtime) as pv1 from website_pv_info;2.第一行到当前行,等效于rows between ..不写,默认就是第一行到当前行 select cookieid,createtime,pv,sum(pv) over(partition by cookieid order by createtimerows between unbounded preceding and current row) as pv2 from website_pv_info; 3.向前3行到当前行 --向前3行至当前行 select cookieid,createtime,pv,sum(pv) over(partition by cookieid order by createtimerows between 3 preceding and current row) as pv4 from website_pv_info; 15713   ,    157316   ,  573217  ,   732416     ,   324413 相当于查询今天以及前三天的总浏览量,在现实中常称为网站的最近3天访问量. 4.向前3行 向后1行 select cookieid,createtime,pv,sum(pv) over(partition by cookieid order by createtimerows between 3 preceding and 1 following) as pv5 from website_pv_info;1573218  ,   5732421 5.当前行到最后一行,第一行到最后一行 --当前行至最后一行 select cookieid,createtime,pv,sum(pv) over(partition by cookieid order by createtime rows between current row and unbounded following) as pv6 from website_pv_info;--第一行到最后一行 也就是分组内的所有行 select cookieid,createtime,pv,sum(pv) over(partition by cookieid order by createtime rows between unbounded preceding and unbounded following) as pv6 from website_pv_info; 8.其他函数 1.ntile平分: 注意ntile规则:尽量平均分配 优先满足最小(编号1)的桶彼此最多不相差1个。 其他开窗函数: ntile   lag和lead   first_value和last_value ntile(x)功能: 将分组排序之后的数据分成指定的x个部分x个桶            注意ntile规则:尽量平均分配 优先满足最小(编号1)的桶彼此最多不相差1个。 lag: 用于统计窗口内往上第n行值 lead:用于统计窗口内往下第n行值 first_value: 取分组内排序后截止到当前行第一个值 last_value : 取分组内排序后截止到当前行最后一个值 注意: 窗口函数结果都是单独生成一列存储对应数据 -- 演示ntile --把每个分组内的数据均匀分为3桶 SELECTcookieid,createtime,pv,ntile(3) OVER(PARTITION BY cookieid ORDER BY createtime) AS rn2 FROM website_pv_info ORDER BY cookieid,createtime; --需求统计每个用户pv数最多的前3分之1天。 --理解将数据根据cookieid分 根据pv倒序排序 排序之后分为3个部分 取第一部分 with tmp as (SELECTcookieid,createtime,pv,NTILE(3) OVER(PARTITION BY cookieid ORDER BY pv DESC) AS rnFROM website_pv_info) SELECT * from tmp where rn 1; --lag 用于统计窗口内往上第n行值 select cookieid, createtime, url,row_number() over (partition by cookieid order by createtime) rn,lag(createtime, 1) over (partition by cookieid order by createtime) la1,lag(createtime, 2, 2000-01-01 00:00:00) over (partition by cookieid order by createtime) la2 from website_url_info;--lead 用于统计窗口内往下第n行值 select cookieid, createtime, url,row_number() over (partition by cookieid order by createtime) rn,lead(createtime, 1) over (partition by cookieid order by createtime) la1,lead(createtime, 2, 2000-01-01 00:00:00) over (partition by cookieid order by createtime) la2 from website_url_info;--FIRST_VALUE 取分组内排序后截止到当前行第一个值 select cookieid, createtime, url,row_number() over (partition by cookieid order by createtime) rn,first_value(url) over (partition by cookieid order by createtime) fv from website_url_info;--LAST_VALUE 取分组内排序后截止到当前行最后一个值 select cookieid, createtime, url,row_number() over (partition by cookieid order by createtime) rn,last_value(url) over (partition by cookieid order by createtime rows between unbounded preceding and unbounded following) fv from website_url_info;
http://www.zqtcl.cn/news/618778/

相关文章:

  • 手机要访问国外网站如何做附近学电脑在哪里报名
  • 免费建网站哪个网好中国建设银行信用卡黑名单网站
  • 网页设计好看的网站中小型网站建设 教案
  • 优秀网站设计案例行业内做网站的公司排名
  • 个人备案网站能做商城吗长沙app制作公司哪家好
  • 成都网站建设方案优化旺道seo怎么优化网站
  • 九江县建设规划局网站wordpress多个博客
  • 绵阳住房和城乡建设局网站做服装外贸的网站
  • 福建省华荣建设集团有限公司网站建设网站西安
  • 做视频网站程序多少钱网站内链有什么用
  • 建设企业网站模板联享品牌网站建设
  • 网站建设耂首先金手指提升网站访问速度
  • 为什么备案关闭网站网站seo推广招聘
  • 建设企业网站的重要性城乡建设厅官方网站
  • 网上有做口译的网站么怎样手机做网站教程
  • 孵化器网站平台建设网站一直建设中
  • 企业网站建设的方案书网站镜像 cdn
  • 淘宝做网站的都是模板泉州模板建站公司
  • 清理网站数据库网站服务器租一个月
  • wordpress免费简约主题搜索引擎优化的英文
  • 瑞安门户网站建设怎么建设自己网站首页
  • 网站建设岗位周计划thinkphp微网站开发
  • 如何修改asp网站栏目帝国cms网站搬家教程
  • 网站建设与网页制作小团队兼职做网站
  • 嘉兴做网站的公司网红营销价值
  • scala做网站广州化妆品网站制作
  • 网站建设小组五类成员在线购物网站功能模块
  • 网站建设开发详细步骤流程图网站建设与管理实训报告总结
  • 网站设计的素材旅游网站建设标书
  • 做网站还得备案大企业网站建设多少钱