56星座屋
当前位置: 首页 星座百科

函数只读(窗口函数1)

时间:2023-06-02 作者: 小编 阅读量: 2 栏目名: 星座百科

窗口函数是那些对分区或窗口的每一行进行操作的函数。这些函数为每条查询行产生结果,而聚合函数则将它们分组,并将结果归入单行。窗口函数的基本语法:<窗口函数>OVER排名窗口函数:RANK、DENSE_RANK、ROW_number能够作为窗口函数的聚合函数:SUM、AVG、COUNT、MAX、MIN非聚类窗口函数:LAG、LEADPARTITIONBY按指定对象来分类。ORDERBY能够指定按照哪一列、何种顺序进行排序。这篇主要是排名窗口函数的应用。

窗口函数是那些对分区或窗口的每一行进行操作的函数。这些函数为每条查询行产生结果,而聚合函数则将它们分组,并将结果归入单行。

窗口函数的基本语法:

<窗口函数> OVER ( [ partition BY <列清单> ] ORDER BY <排序用列清单> )

  • 排名窗口函数:RANK、DENSE_RANK、ROW_number
  • 能够作为窗口函数的聚合函数:SUM、AVG、COUNT、MAX、MIN
  • 非聚类窗口函数(可用于同比、环比等):LAG、LEAD

PARTITION BY 按指定对象来分类。

ORDER BY 能够指定按照哪一列、何种顺序进行排序。

这篇主要是排名窗口函数的应用。

小智和他的小伙伴们

故事:来自真新镇的10岁天才少年小智,用他25年的学习经验夺得了世界冠军。今天他想在隔壁老木那里看看哪只杰尼龟和小火龙的攻击力最高。他简单的看了下数据,决定用SQL操作一番。

  • 首先看下数据:

SELECT *FROM pokemon_table;

  • 排名窗口函数的应用:

对上述SQL进行拆分解释,先来看看OVER括号里的内容:

  1. PARTITION BY对pokemon列进行了分组,将小火龙和杰尼龟分为两大组;
  2. 在分完组后,ORDER BY对attack列按降序排列,然后分别赋予排名。

接下来看看这几个排名的区别:

  1. RANK 函数:计算排序时,如果存在相同位次的记录,则会跳过之后的位次。例如:有 3 条记录排在第 1 位时:1 位、1 位、1 位、4 位
  2. DENSE_RANK 函数:同样是计算排序,即使存在相同位次的记录,也不会跳过之后的位次。例如:有 3 条记录排在第 1 位时:1 位、1 位、1 位、2 位......
  3. ROW_NUMBER 函数:赋予唯一的连续位次。例如:有 3 条记录排在第 1 位时:1 位、2 位、3 位、4 位......

rank

dense_rank

row_number

这三个排序还是比较好记的:

  • rank:正常排名,会跳位次
  • dense_rank:dense单词是密集的意思,所以排名是紧靠的,不存在跳位次
  • row_number:可以这么记,row是行的意思,每一个人必须单独占有一行,所以是1,2,3,4......

另外需要知道的是,排序窗口函数的第一个括号是不需要填任何东西的,而第二个括号中PARTITION BY不是必须项,但是去掉的话,就是按整个表的数据进行处理,不会按组进行分类处理了

我们按的是攻击力降序排列,没有了partition by,所以是对整个数据进行排序

总结:

<窗口函数> OVER ( [ PARTITION BY <列清单> ] ORDER BY <排序用列清单> )

  1. <窗口函数>填入RANK()、DENSE_RANK()、ROW_NUMBER(),括号不需要填写任何东西
  2. PARTITION BY <列清单>:列清单填入所需要的列(可以多个列),窗口函数会按填入的列进行分组,PARTITION BY不是必须项,去掉就是对整个数据进行处理
  3. ORDER BY <排序用列清单>:选定需要按哪一列的数据大小排序
  4. RANK():跳位次、DENSE_RANK():密集排序、ROW_NUMBER():1,2,3...

彩蛋:小智肯定不会只满足于攻击力高这一选项,毕竟是顶尖训练师,所以他接下来要做的事情便是找到综合实力最高的,平均实力最强的,数量最多的小精灵。

    推荐阅读
  • 微信一直闪退怎么回事(华为微信一直闪退怎么回事)

    以三星手机为例,手机微信软件无法运行的原因及解决办法如下:1、查看手机联网状态是否正常,更换其它网络尝试。

  • 二级保护动物白腹锦鸡(马麝红腹锦鸡国家级野生保护动物频现西咸新区)

    经确认,李斌救助回来的这只长相奇特的动物,竟然是国家一级野生保护动物马麝。无独有偶,仅过了一个星期10月9日西咸新区泾河新城永乐镇大齐村国储物流园一家公司内又飞来了一只漂亮的“大鸟”西咸新区泾河新城原点东路派出所接到群众报警后,立即前往救助。后经西咸新区泾河新城自然资源局工作人员确认,系国家二级野生保护动物红腹锦鸡。目前,马麝和红腹锦鸡均已被工作人员带回,待确认其恢复健康后,将放归大自然。

  • 小米辣拌香菜怎么做(小米辣拌香菜做法介绍)

    以下内容大家不妨参考一二希望能帮到您!小米辣拌香菜怎么做食材:香菜一小把,小米辣四个,蒜头三个。香菜切成细末,如果喜欢长一点的段也可以切长一点点,下入一茶匙盐先腌制五分钟,会出一点的汁。再下入切成细末的小米辣和蒜头。继续放一汤匙香醋。两汤匙白醋,如果不喜欢太酸的话就放一汤匙也可以。半汤匙白糖,搅拌均匀。最后放少许鸡精,半汤匙香油即可。

  • 佛山禅城区到哪里买车有优惠2023 佛山禅城汽车上牌流程

    根据2023年《佛山市禅城区推动汽车消费专项行动方案》,在禅城区指定的时间内、前往指定的汽车经销商企业买车,可以享受除车企提供的折扣、补贴外最高5000元的政府补贴。

  • 惊艳全国的河南古镇(河南一假古镇走红)

    同盟古镇位于河南省新乡市的获嘉县,花费了将近40亿建造而成,占地面积也是非常的大,大约有40万平方米,能以“假古镇”而走红的同盟古镇也是有原因的。一提起河南,人们便会想到“十省通衢”这个称号,交通非常的发达。所以许多地方为了缅怀历史,将当地的历史文化融于美丽的自然景观里,耗费人力物力建造了“假古镇”。虽然是“假古镇”,但是依然保留着当地浓厚的历史文化,而其中的自然景观更是不输许多有名的风景区。

  • 抹布读音(抹布怎么读)

    用许多布条系在木棒的一头做成。举例:朱标接过便装,换下自己身上的秽装,打开大门到男厕取了拖布,将办公室的地面擦得是干干净净,光可鉴人。

  • 暑假杭州文旅特色优惠活动 杭州文旅产品

    暑期杭州文旅特色产品和优惠活动塘栖古镇的亲子非遗体验游、文渊狮城的花海旅游节、超山杨梅采摘季、瓶窑镇杭州樱花园、径山景区的少儿深度茶文化研学营、各类茶文化研学体验、茶科技研学等活动可以为家庭亲子出游提供更多选择。更多游杭州暑期优惠活动:点击进入查看详情

  • 西域历史的记忆(浅析西域历史地名的发展与传承)

    西域历史的记忆一、西域的范围西域之称始于西汉弃于清代,使用长达两千年。很赞同北京大学中国古代史研究中心教授,荣新江先生的说法。在未被汉王朝封为诸侯国之前,以各自的部落名、部族名作为地域名称。与此同时,地名的多民族文化特征变得突出。

  • 中午好怎么幽默回复(如何回复中午好)

    我们一起去了解并探讨一下这个问题吧!这样既可以表达了自己对父母的关爱,也不会显得尴尬。若对方是你的对象,给你发中午好的话你可以你可以回复是不是想我了呀等调侃的话,有效地增进双方之间的感情。朋友给你发送中午好,你可以比平时双方经常用的一些玩笑的话,用以回复。注意在回复的时候,不要将话说死,不要简单的回复,中午好,这样会使对方不知道怎么继续回复你。

  • 花期长四季开花的植物(一到春天满树繁花)

    与梅花相比,美人梅身上没了那股子凌然不可侵犯的感觉,反而更加亲切可爱,它的花瓣白里透红,娇艳粉嫩,非常惹人喜爱。美人梅常常被误认为是桃花或樱花,其实它们的区别很明显,美人梅的花瓣接近蝶形,偏圆一些,花托和叶子部分跟红叶李很像,花心处的颜色要红得多,仔细看应该不难区分。红叶李也叫紫叶李,它是蔷薇科李属植物,叶片颜色会由暗红色渐渐变成紫红色,因而取名红叶李或紫叶李。