(资料图)
1.数据分组
1.1.SQL的语句中具有分组功能的是GROUP BY和PARTITION BY
1.1.1.两者都有数学的理论基础
1.1.2.都可以根据指定的列为表分组
1.1.3.区别仅仅在于,GROUP BY在分组之后会把每个分组聚合成一行数据
1.1.4.GROUP BY的作用是将一个个元素划分成若干个子集
1.2.示例
1.2.1.
SELECT member, team, age , RANK() OVER(PARTITION BY team ORDER BY age DESC) rn, DENSE_RANK() OVER(PARTITION BY team ORDER BY age DESC) dense_rn, ROW_NUMBER() OVER(PARTITION BY team ORDER BY age DESC) row_num FROM Members ORDER BY team, rn;
1.3.分割后的子集
1.3.1.它们全都是非空集合
1.3.1.1.还有一种只包含NULL的集合
1.3.2.所有子集的并集等于划分之前的集合
1.3.3.任何两个子集之间都没有交集
1.3.4.满足以上3个性质的各子集称为“类”(partition)
1.4.类的概念(即partition)
1.4.1.群论中有很多非常有趣的类,比如“剩余类”
1.4.1.1.通过对3取余给自然数集合N分类后
1.4.1.1.1.“模3剩余类”
1.4.1.2.模在SQL中也有实现,就是取模函数MOD
1.4.1.2.1.--对从1到10的整数以3为模求剩余类
SELECT MOD(num, 3) AS modulo, num FROM Natural ORDER BY modulo, num;
1.4.1.3.--从原来的表中抽出(大约)五分之一行的数据
SELECT * FROM SomeTbl WHERE MOD(seq, 5) = 0; --表中没有连续编号的列时,使用ROW_NUMBER函数就可以了 SELECT * FROM (SELECT col, ROW_NUMBER() OVER(ORDER BY col) AS seq FROM SomeTbl) WHERE MOD(seq, 5) = 0;
1.4.2.正因为抽象,才有了广泛的应用
1.4.2.1.数学理论并不是脱离实际的游戏,它其实隐藏了大量能够用于日常工作的技巧
2.层级
2.1.SQL的世界其实是层级分明的等级社会
2.2.使用GROUP BY聚合之后,我们就不能引用原表中除聚合键之外的列
2.2.1.这只是SQL中的一种逻辑,是为了严格区分层级
2.3.GROUP BY中的阶与元素和集合的区别有关,因此属于集合论中的阶
2.3.1.对于EXISTS来说,层级的差别与EXISTS谓词及其参数有关,因此属于谓词逻辑中的阶
2.3.2.使用GROUP BY聚合之后,SQL的操作对象便由0阶的“行”变为了1阶的“行的集合”
2.4.标准SQL规定
2.4.1.在对表进行聚合查询的时候,只能在SELECT子句中写下面3种内容
2.4.2.通过GROUP BY子句指定的聚合键
2.4.3.聚合函数(SUM、AVG等)
2.4.4.常量
2.5.示例
2.5.1.--以组为单位进行聚合查询
SELECT team, AVG(age) FROM Teams GROUP BY team;
2.5.1.1.年龄只是每个人的属性,而不是小组的属性
2.5.1.2.小组指的是由多个人组成的集合
2.5.1.2.1.小组的属性只能是平均或者总和等统计性质的属性
2.5.2.--以组为单位进行聚合查询?
SELECT team, AVG(age), age FROM Teams GROUP BY team;
2.5.2.1.违反了标准SQL的规定,因此不具有可移植性
2.5.2.2.MySQL数据库支持这样的查询语句
2.5.2.3.强行将适用于个体的属性套用于团体之上,纯粹是一种分类错误
2.5.3.--错误
SELECT team, AVG(age), member FROM Teams GROUP BY team;
2.5.3.1.--正确
SELECT team, AVG(age), MAX(member) FROM Teams GROUP BY team;
2.5.4.--小组中年龄最大的成员
SELECT team, MAX(age), (SELECT MAX(member) FROM Teams T2 WHERE T2.team = T1.team AND T2.age = MAX(T1.age)) AS oldest FROM Teams T1 GROUP BY team;
2.5.4.1.子查询中的WHERE子句里使用了MAX(T1.age)这样的聚合函数作为条件
2.5.4.2.这里对外层的表T1也进行了聚合,这样一来我们就可以在SELECT子句中通过聚合函数来引用“age”列了
2.5.4.3.不能反过来在子查询中直接引用“age”列
2.6.单元素集合也是集合
2.6.1.单元素集合和空集一样,主要是为了保持理论的完整性而定义的
2.6.2.元素a和集合{a}之间存在着非常醒目的层级差别
2.6.2.1.这两个层级的区别分别对应着SQL中的WHERE子句和HAVING子句的区别
2.6.2.2.WHERE子句用于处理“行”这种0阶的对象
2.6.2.3.HAVING子句用来处理“集合”这种1阶的对象
关键词:
1 & 160;数据分组1 1 & 160;SQL的语句中具有分组功能的是GROUPBY和PARTITIONBY1 1 1 & 160;两者都有数学的理论基础1 1 2 & 160;都可以根2023-04-21
学习困难还能治疗这个专病门诊,了解下?2023-04-21
当地时间2023年4月18日,苏丹Shendi,忠于苏丹武装部队总司令阿卜杜勒·法塔赫·阿卜杜勒-拉赫曼·布尔汉的士兵在2023-04-21
“这个应用还挺方便的,市民之家帮代办教我一次,就基本掌握了,以后就在家用手机认证,真是太方便了!”市民王奶奶感叹道。近期2023-04-21
4月20日电,SpaceX称,星舰的试飞似乎还不够令人满意,星舰飞船发生了非计划内的解体。团队将继续审查数据并为下一次飞2023-04-21
陕西省黄龙县发布寒潮蓝色预警2023-04-21
“把农旅融合作为推动乡村振兴的重要抓手,通州要因地制宜,积极改造老产业、发展新项目,实现新一轮的腾笼换鸟。”近日,在参加完通州区委老2023-04-21
2023年课改中国行(南京江北新区)公益师训会暨基于素养指向的小学语文教学实践研讨会将于4月23日开幕,定个小闹钟来看视2023-04-21
【财华社讯】同道猎聘(06100 HK)公布,于2023年04月20日回购34万股,每股回购价介乎10 22港元至10 62港元,涉资约350 52万港元。本年2023-04-21
1、一、读书报告的内容可包括: 1.本书的概况:作者简介、内容概要;本书在表达、处理等方面的特别之处等; 2.本书的主要观点、意图;2023-04-21
受成本端支撑,沥青趋势偏多逻辑没有改变,但现阶段面临一定的高位压力。利多因素主要体现在成本支撑方面,一是国际油价位于高位,二是稀释沥2023-04-21
1、转转和转转优品都是58的平台,其区别如下:所属关系不同转转也是一个中介性质的平台,不同的是转转优品是转转的自营平台,2023-04-21
据证券时报,4月19日下午,“国家发展改革委与美在华跨国企业高层圆桌会—粤港澳大湾区站”活动在广州成功举行。国家发展改革2023-04-21
目前,翁牛特旗红色研学游累计接待游客3 2万余人次,其中二次游、重复游占比23%2023-04-21
昨日NBA季后赛,湖人在客场以93-103不敌灰熊。在这场比赛中,狄龙多次和詹姆斯叫嚣、挑衅、喷垃圾话。对此,名记BrianWindhorst说道:“这是一2023-04-21
中新网黑龙江新闻4月19日电(张子龙孙汉仑)近日,大庆市盈泰报废汽车回收拆解有限公司将一面印有“警德高尚,情系企业,服2023-04-21
花无百日红,人无千日好”在中国市场内卷如此严重的地方,每天都有花样迭出、层出不穷的品牌出现,澳洲奔富为何能在长时间内独占中国市场。奔2023-04-21
SpaceX星际飞船第二次发射尝试,火箭科学家告诉你不容错过的细节,太空,上面级,星际飞船,发射尝试,火箭科学家,国际空间站,spacex公司2023-04-21
李志飞AllinAGI,出门问问大模型来了!2023-04-21
4月18日上午,商城县卫生健康委组织专业人员到中原制鬃有限责任公司开展应急救护培训活动。该公司生产部门及客服中心等30名员工参加培训,县卫2023-04-21
轻工业数字化水平加快提升智能化生产比例达12 2%,智能化,制造业,轻工业,消费品2023-04-21
1、香皂。2、比如百合粉、莲子粉、辣椒粉、咖喱粉等、水布、鱼干等 送礼特产建议购买香料、精油 主2023-04-21
1、司马光(1019年11月17日-1086年10月11日),字君实,号迂叟。2、汉族。3、陕州夏县(今山西夏县)涑水乡2023-04-21
1、书中是虚构的地名。2、但根据风土人情和人们的语言对话可以推测指的是陕西省米脂。3、小说是艺术加工的产物,她的人物地点2023-04-21
红网时刻新闻4月20日讯(通讯员蒋椰南)“今天真是收获满满!大家的发言让我更加明白了进行思想政治教育的重要性,看到了提2023-04-21
