为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第12天 MySQL8.0版本新特性

标签:
MySQL

课程章节:第5章 窗口函数

主讲老师:董旭阳(Tony.Dong)

课程内容
一、窗口函数基本概念(window function)(分析函数)

二、专用窗口函数

1、用于排名:row_number(),rank(),dense_rank(),percent_rank()

2、用户获取窗口第一名或最后一名:first_value(),last_value(),

前面第几名或者后面第几名:lead(),lag()

3、累计分布,累计到现在占了多少cume_dist(),

排名第几名的函数nth_value(),

比分位ntile(),比如四分之一百分位(占百分值二十五)

三、窗口定义(完整的窗口定义)

写法:window_function(expr)

OVER(partiton by...

order by ....

frame_clause

)

课程收获
一、窗口函数也称为分析函数,用于在sql语句中做数据分析用的,与聚合函数类似但是每一行数据都生成一个结果。

关键部分:聚合函数OVER (partition by) as 别名

用法:Select 列1,列2,列3, avg(列3) OVER(partition by 列2) as 别名 from 表;

如:Select year,country,product,profit,sum(profit) OVER (partition by country) as contry_profit

From sales order by country,year,product,profit;

OVER不区分大小写, OVER与后面的括号直接要有空格

二、关于完整的窗口定义,用一个例子可以帮助更好的理解

Select year,country,product,profit,sum(profit) OVER (partition by country order by profit rows unbounded preceding ) as running_total

From sales order by country,profit;

计算一个利润的总和,首先按照国家进行分区,然后按照利润进行排序,排序完成之后,对于每一行计算,从最开始那一行到当前行结束(后面不写就默认到当前行结束).

https://img1.sycdn.imooc.com//62f687b30001632109670331.jpghttps://img1.sycdn.imooc.com//62f687ce0001ac1009610539.jpg

 https://img1.sycdn.imooc.com//62f687e70001869c09930650.jpg



点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
软件工程师
手记
粉丝
1
获赞与收藏
1

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消