安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

SQL轻松入门窗口函数

11月7日 金钟寨投稿
  01hr前言
  标题中有2个字让我在初次接触窗口函数时,真真切切明白了何谓高级?说来也是一番辛酸史!话说,我见识了窗口函数的强大后,便磨拳檫掌的要试验一番,结果在查询中输入语句,返回的结果却是报错,What?聪明的你,猜猜为啥?
  害,原因可不就是MySQL的版本不匹配呗,我的原装是5。5,而窗口函数可运用的版本是MySQL8。0。经历了卸载重装,我对窗口函数的印象可是老深的啦!闲话到此,正题开始
  窗口函数的高级不仅体现在版本要求高,还体现在功能上的简洁易懂。以Excel中vlookup作类比,窗口函数vlookup,groupbyorderby关联子查询indexmatch,虽不完全贴切,但能助你理解即可。
  本文所涉及知识点,框架如下:
  02hr什么是窗口函数?
  窗口函数,也叫OLAP函数(OnlineAnallyticalProcessing,联机分析处理),可以对数据库数据进行实时分析处理。
  基本语法:窗口函数over(partitionby用于分组的列名orderby用于排序的列名)。语法中的窗口函数主要由专用窗口函数(rank、denserank和rownumber等组成)与聚合函数(sum、avg、count、max和min等)作为窗口函数组成。
  从窗口函数组成上看,它是groupby和orderby的功能组合,既然我们已经学了groupby和orderby,为什么还要学窗口函数呢?groupby分组汇总后改变了表的行数,一行只有一个类别,而partiitionby则不会减少原表中的行数。
  恰如窗口函数的组成,它同时具有分组和排序的功能,且不减少原表的行数。
  03hr窗口函数如何使用?
  以截图问题为例:查看每个班级的排名情况
  截图示例中使用了专有窗口函数rank,从整体执行效果来看,语句十分简洁。我们也可以理解:为什么要叫窗口函数?因为partitionby分组后的结果被称为窗口,这里的窗口不是指我们家里的门窗,而是表示范围的意思。
  04hr窗口函数分类和应用
  从上例,我们可以清晰看到窗口函数的厉害之处,所以会在了解窗口函数组成部分的同时通过应用的讲解来加深理解。
  排序函数rank、denserank和rownumber的区别在于并列的排名表现。
  rank函数:这个例子中是5位,5位,5位,8位,也就是如果有并列名次的行,会占用下一名次的位置。denserank函数:这个例子中是5位,5位,5位,6位,也就是如果有并列名次的行,不占用下一名次的位置。rownumber函数:这个例子中是5位,6位,7位,8位,也就是不考虑并列名次的情况,和Excel中的row()函数一样,依据顺序排列下去。
  topN问题:在日常工作中十分常用,以查找每个学生成绩最高的2个科目为例:
  截图中红色标注是为了说明掌握sql语句运行顺序的重要性,能看懂报错十分重要,有时候很容易忽略语句的运行顺序,谨记!
  topN的万能模板:
  selectfrom(select,rownumber()over(partitionby要分组的列名orderby要排序的列名desc)asrankingfrom表名)asawhererankingN;
  如果是最小的话,只需变动orderby的排序方式即可。
  汇总分析版块中的常用聚合函数相信我们已掌握,那么在窗口函数中,它们区别于专用窗口函数的一个点是括号里需带有对应的列名。
  上图以2列突出显示,可以观察到sum()数值不断累加,avg()也是,由此可以说明,窗口函数中可以看到1列的数值动态变化过程。
  根据上面的观察,我们可以解决业务中的累计求和问题。
  累计求和问题的万能模板是:
  select列1,列2,sum(列名)over(orderby用于排序的列名)as累计值的别名from表名;在开篇对比中,我有说到关联子查询,毫无疑问,接下来的问题和每一组对比相关,那么如何在每个组里比较?
  通过上述2种方法,再一次验证了窗口函数的简洁高效,以后若是遇到每组比较的问题,要知道有2种解法,同时大脑中能反映出这2种语句,但执行可以选择窗口函数。
  窗口函数除了能解决以上的应用外,还可以实现移动平均,或者移动求和等,以移动平均为例:
  红色标注的就是移动平均的关键字,截图是包括本行再往上2行,也可以变成数字4,那么就是5行对比,重点可以观测到相邻数值之间的差异。
  综上,窗口函数所包含的内容绝不仅是上面这些,随着我们在业务中的不断打磨,我们需要不断扩充自己的知识库,平时要多总结学习。
投诉 评论

从阿里到国台酒业,两起丑闻的相似点缘何如此之多?文丨林雨秀编辑丨杜海来源丨正经社(ID:zhengjingshe)阿里女员工自曝事件尚未平息,正在冲刺酱酒第二股的国台酒业,也摊上了性丑闻。国台酒业旗下全资销……九号方糖机器人赋能智慧酒店,让送物更省心近日,上海国际酒店及商业空间博览会(简称:上海酒店展)在上海新国际博览中心正式举办,九号公司携全新一代酒店配送机器人九号方糖参加此次展会,并为打造全新酒店智能体验提供了有效解决……MARVELR视觉融合自动泊车和普通的自动泊车有啥不同?1985年,当迈克尔J福克斯驾驶着时间机器携手《回到未来》问世时,彼时的人们除了感叹平行宇宙的概念,更是对电影中那辆超凡脱俗的汽车念念不忘。数十年后的今天,互联网汽车问世……武直10怎么样?直10武装直升机,代号霹雳火,这个代号可是真代号,是我国官方赋予的。直10武装直升机属于中型武直,他对于目前我国陆军、海军都有很重要的价值。对于陆军而言,他是陆军航空兵和空中突……户外游玩新高度,卡旺达户外电源瞬间提升生活幸福指数每天在水泥钢筋森林里奔波劳碌,对大自然的向往会日益增加。越来越多的人选择自驾游释放工作的压力,远离城市的喧嚣,在草丛里席地而坐,或看看书、或听听音乐、或冲上一杯咖啡品味生活。……以太坊菠萝mini要到了一台菠萝V1算力15台1660s八卡整机算力,一台菠萝V2算力22台1660s八卡整机算力。一台菠萝V1功耗3台1660s八卡整机功耗,一台菠萝V2功耗4。5台1660s……SQL轻松入门窗口函数01hr前言标题中有2个字让我在初次接触窗口函数时,真真切切明白了何谓高级?说来也是一番辛酸史!话说,我见识了窗口函数的强大后,便磨拳檫掌的要试验一番,结果在查询中输入语……从iPhone12换到RedmiK50Pro,我回不去了,原从iPhone8开始,每一年都会更换新iPhone,原因是我觉得苹果每年都在变强,但是近两年的苹果让我感觉到在挤药膏,尤其是今年的iPhone13相对于去年的iPhone12来……在海外用支付宝和微信支付,是一种什么体验?总的来说,使用微信更多,很多地方没有支付宝,但是有微信支付。这主要是因为海外也有不少人使用微信wechat。而且微信支付9折呢!部分店铺可以使用支付宝,都会有优惠的。但是总体上……萌萌的新能源汽车零跑T03总过国内这么多造车新势力,真正做微型车的几乎没有,基本上都是从SUV入手,然后再拓展,在微型车上还是比较空白的状态,这时候零跑T03得到了面世,这也是零跑品牌的第二款车型,……人为什么难改变?那是进化的力量在与自然熵增法则对抗《科学通史》作者吴国盛爱因斯坦说:熵(增)理论对于整个自然科学来说是第一法则。我们来看一下,什么是熵增定律。熵增定律源自热力学第二定律,熵的物理意义是分子无序……外媒高通骁龙778G5G移动处理器由台积电代工采用6nm工艺【点击右上角加关注,全国产经信息不错过】【TechWeb】5月21日消息,据国外媒体报道,高通公司在当地时间周三,推出了骁龙778G5G移动处理器。在官网上,高通披……
网友问配置锁是什么?为什么有配置锁的iPhone如此便宜?如果塔克拉玛干沙漠每年的平均降雨量再增加3000毫米,10年含氟纳米结构可高速低耗淡化海水学习机领域的天花板读书郎C30,独家功能AI成长规划师亮相一部iPhone12五六千元,苹果手机为什么这么贵?宁德时代跟B站成立一家私募一美妆新零售品牌完成近2亿美元融资加密行业最惨原告挖矿被坑,合同被判无效,比特币还可能被没收关于手机摄影,你是怎么认为的?144HZ高刷OLED,12256GB已跌至2999,而且还技术高光泽聚丙烯技术进展?美国电信公司ATampampampT和Verizon拒绝延迟美国再对中企下毒手!对中国联通下驱逐令,限期60天内关停宝格丽和卡地亚哪个好?宝格丽和卡地亚哪个贵?电脑怎么录歌(电脑怎么录音频mp3)羊了个羊的赚钱机会男人如何正确自慰最新撩妹技能成功撩妹七大招班主任与教学工作计划语文128个常见错别字汇总,纯干货,孩子考试无忧严冬来临,关节又冷又痛,快来试试这四味中药怎么查身份证开宾馆记录查询系统(怎么查住哪个酒店)长沙首家文创视频零工市场落子马栏山给即将做妈妈的你们一些知心话黑色挑染什么颜色好看主推挑染紫色与蓝色

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利