首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL Explain执行计划输出字段解读

(2)PRIMARY:查询中若包含任何复杂的子部分,最外层查询则被标记为。(3)SUBQUERY:在SELECT或WHERE列表中包含了子查询。...Range 只检索给定范围的行,使用一个索引来选择行。Key列显示使用了哪个索引,一般就是在你的where语句中出现了between、、in等的查询。...在不损失精确性的情况下,长度越短越好key_len显示的值为索引字段的最大可能长度,并非实际使用长度,即key_len是根据表定义计算而得,不是通过表内检索出的。...理解方式一:就是select的数据列只用从索引中就能够取得,不必读取数据行,MySQL可以利用索引返回select列表中的字段,而不必根据索引再次读取数据文件,换句话说查询列要被所建的索引覆盖。...(7)select tables optimized away:在没有GROUPBY子句的情况下,基于索引优化MIN/MAX操作或者对于MyISAM存储引系优化COUNT(*)操作,不必等到执行阶段再进行计算

7600

Pandas按班拆分Excel文件+按班排名和按级排名

Pandas groupby rank, 今天学习有: 1。用pandas.groupby+apply+to_excel进行按‘班别’列对一个Excel文件拆分成一个班一个文件的操作。...('data_1.xlsx') """ print(df) #在列的方向上删除‘学号’‘语文’ df=df.drop(['学号','语文'],axis=1) print(df) #在列的方向上删除index...Excel文件 #df.groupby('班别').apply(lambda x: x.to_excel(f'分/{x.name}.xlsx',index=False)) #按语文成绩排名,并添加‘语名...’并输入数字 #df['语名']=df['语文'].rank(ascending=0,method='dense') #只是按数学成绩排名,并重新列表,没有输入名次的 #d=df.sort_values...(by='数学',ascending=0) #计算添加一列‘总分’=语文+数学 df['总分']=df['语文']+df['数学'] print(df) #添加一列‘级名次’并按总分排名,并输入名次数字

1.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python替代Excel Vba系列(四):课程表分析与动态可视化图表

    Excel Vba"系列(三):pandas处理不规范数据 ---- 前言 前一节我们已经成功把一份教师课程表整理成规范的形式,本节我们就看一下怎么利用这份数据得到一些信息。...如下: df['sj'].apply(lambda x: '语数英' if x in cond else '其他') ,根据科目列,划分为"语数英"或"其他" 把划分结果添加的新列 sj_class...---- ---- 现在数据如下: ---- 现在可以看看主科目的数量。我们把汇总问题的主键列出,利用 pandas 的 groupby 方法即可快速做汇总。...如下: 这次我们的汇总主键是 级别和主科目。 可以看到其实与之前的流程基本一致,只是在分组时加上了 grade 字段。...看看图表吧: 可以看到五年级的语数英课时占比最大(为什么不是六年级的主科目占比最大?)。 七、八年级语数英没有其他科目占比大(初一初二语数英课时减少了?)。

    1.7K20

    数据分析系列——SQL数据库

    向数据库中添加数据时,列名和值要一一对应,如果未写出列名,则添加数据的默认顺序是列的存放顺序,这就引出两种添加方式,一种是向全部字段(即列)添加数据,只需不写出列名就可以;另一种是向部分字段添加数据,需要写出具体的添加数据列名...ORDERBY子句后面可以放置1列或多列,在每一列后面还要指定该列的排序方式,DESC代表的降序排列,ASC代表的是升序排列。...上面语句中:GROUPBY是分组查询的关键字,在其后面写的是按其分组的列名,可以按照多列进行分组。 HAVING是在分组查询中使用条件的关键字。该关键字只能在GROUPBY后面。...HAVING子句要放在GROUPBY 子句之后,也就是要对数据进行分组,然后再对其按条件进行数据筛选。还有一点使用HAVING语句作为条件时,条件后面的列只能是在GROUPBY子句后面出现过的列。...(4)、分组查询的结果排序 ? 对查询结果进行排序,但是排序只能只能针对groupby 子句中出现过的列。 3、多表查询 在前面的查询时针对两张表之间的查询,而多表查询时针对的是更多表之间的查询。

    2.1K80

    Flink Table API & SQL 基本操作

    在我们程序中,输入数据可以定义成一张表,然后对这张表进行查询得到一张新的表,最后还可以定义一张用于输出的表,负责将处理结果写入到外部系统。...Flink 中的表 Table 概念也并不特殊,是由多个行 Row 数据构成的,每行又可以定义好多的列 Column 字段。...,我们将 Table 对象名 inputTable 直接以字符串拼接的形式添加到 SQL 语句中,在解析时会自动注册一个同名的虚拟表到环境中,这样就省略了创建虚拟表的过程。...一些关系操作是由多个方法调用组成的,例如 table.groupBy(…).select(…),其中 groupBy(…) 指定了 table 的分组,select(…) 指定了在分组表上的投影。...可以在 Table API 查询返回的 Table 对象上定义 SQL 查询:通过在 TableEnvironment 中注册表并在 SQL 查询的 FROM 子句中引用。

    3.4K10

    数据库的检索语句

    1、SELECT 基本使用方法 1.1简单的数据检索 1.1.1检索出须要的列 仅仅要运行“SELECT * FROM 名”就可以。...须要注意的就是“BETTWEEN AND”在进行检測的时候是包含了范围的边界值的(也就是闭区间)。假设须要进行开区间或者半开半闭区间的范围值检測的话就必须使用其它的解决方式了。...则GROUPBY子句必须放到WHERE语句的之后。...,也就是没有出如今GROUP BY子句中的列(聚合函数除外)是不能放到SELECT语句后的列名列表中的。...GROUP BY子句中能够指定多个列。仅仅须要将多个列的列名用逗号隔开就可以。 指定多个分组规则以后, 数据库系统将依照定义的分组顺序来对数据进行逐层分组, 首先依照第一个分组列进行分组。

    2.5K10

    Power Pivot中3大汇总函数的配套组合函数

    返回 仅返回小计,不返回可被引用的具体值 C. 注意事项 只有在SUMMARIZE函数中使用。 如果分组依据有多列,而RollUp未汇总全部列,则汇总未选择列。(可以看案例加深理解) D....ShowAll_ColumnName 返回度量值为空的列 可选第2参数 Table 度量值计算的表 可选重复第3参数 GroupBy_ColumnName 分组依据的列 可选重复第4参数 FilterTable...返回 表——需要显示的列及汇总依据列及值生成的表。 C. 注意事项 如果和ROLLUPISSUBTOTAL和ISSUBTOTAL函数一起使用,参数要一致 D. 作用 重新添加包含空度量值的行 E....解释: 如果单纯通过SummarizeColumns函数进行分组的话,如果计算值为0的话,分组的内容会缺失,但是通过AddMissingItems函数可以进行恢复。...返回 不返回值,仅标记是否小计 C. 注意事项 只在ADDMISSINGITEMS内使用。 D. 作用 将汇总组合添加的列配对,返回一个逻辑值。 E. 案例 ?

    1.5K20

    MySQL索引优化分析工具

    SIMPLE 简单的 select 查询,查询中不包含子查询或者UNION PRIMARY 查询中若包含任何复杂的子部分,最外层查询则被标记为Primary DERIVED 在FROM列表中包含的子查询被标记为...SUBQUERY 在SELECT或WHERE列表中包含了子查询 DEPENDENT SUBQUERY 在SELECT或WHERE列表中包含了子查询,子查询基于外层 table 显示这一行的数据是关于哪张表的...key 列显示使用了哪个索引一般就是在你的where语句中出现了between、、in等的查询这种范围扫描索引扫描比全表扫描要好,因为它只需要开始于索引的某一点,而结束语另一点,不用扫描全部索引。...filtered 这个字段表示存储引擎返回的数据在server层过滤后,剩下多少满足查询的记录数量的比例,注意是百分比,不是具体记录数 Extra 包含不适合在其他列中显示但十分重要的额外信息 Using...tables optimized away 在没有GROUPBY子句的情况下,基于索引优化MIN/MAX操作或者对于MyISAM存储引擎优化COUNT(*)操作,不必等到执行阶段再进行计算,查询执行计划生成的阶段即完成优化

    1.1K20

    何时使用 Object.groupBy

    此变量被初始化为空数组,以处理用户不匹配搜索的情况。最后,显示找到的用户。虽然这种方法有效,但 JavaScript 的 Object.groupBy 可以提供更简洁、高效的解决方案。...索引涉及在列上放置特殊标识,并告知我们的数据库,下次当我们需要对该列进行搜索时,请快速处理!但是,“快速处理”是什么意思呢?简单来说,这意味着根据特定列对所有数据进行分组。这听起来熟悉吗?...当您在数据库中对列进行索引时,您这样做是因为您预期会返回并用一个请求搜索该列,您需要尽可能快地访问它,最理想的情况是使您的请求花费恒定的时间。这也是使用 Object.groupBy 时的目标。...您的目标是更快地访问数据,因为线性时间不够(例如),您需要更快的访问时间,最理想的情况是恒定时间。那么改如何运作呢?首先,您将确定需要快速访问的列。在我们的情况下,这是我们对象的电子邮件列。...要点Object.groupBy 是 JavaScript 生态系统中的一项很棒的功能,因为它意味着对于这个特定的用例场景(在列中更快地搜索大量数据),您不需要下载一堆库来做到这一点(您可能以前已经使用

    22200

    详解分支和循环结构(剖析if语句,switch语句,while循环,for循环,do-while循环)

    介绍 C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种结构的组合。...分支结构 if语句 if(表达式) 语句1 else 语句2 表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏ 在C语⾔中,0为假,⾮0表⽰真,也就是表达式的结果如果是...0,则语句不执⾏,表达式的结果如果是不是0,则语句执⾏。...则执行default switch语句中的case和default的顺序问题 在 switch语句中 case ⼦句和 default⼦句有要求顺序吗?...default只能放在最后吗?其实,在 switch 语句中 case语句和default语句是没有顺序要求的,只要你的顺序是满足实际需求的就可以。

    23810

    MySQL 查询专题

    ❑ GROUP BY子句可以包含任意数目的列,因而可以对分组进行嵌套,更细致地进行数据分组。 ❑ 如果在 GROUP BY 子句中嵌套了分组,数据将在最后指定的分组上进行汇总。...换句话说,在建立分组时,指定的所有列都一起计算(所以不能从个别的列取回数据)。 ❑ GROUP BY子句中列出的每一列都必须是检索列或有效的表达式(但不能是聚集函数)。...❑ 大多数SQL实现不允许 GROUP BY 列带有长度可变的数据类型(如文本或备注型字段)。 ❑ 除聚集计算语句外,SELECT 语句中的每一列都必须在 GROUP BY 子句中给出。...在升序排序时可以指定它。但实际上,指定 ASC 没有多大用处 在对文本性数据进行排序时,A 与a 相同吗?a位于 B 之前,还是Z之后?这些问题不是理论问题,其答案取决于数据库的设置方式。...这样,MySQL 可以快速有效地决定哪些词匹配(哪些行包含它们),哪些词不匹配,它们匹配的频率,等等。

    5K30

    从pandas中的这几个函数,我看懂了道家“一生二、二生三、三生万物”

    01 nunique number of unique,用于统计各列数据的唯一值个数,相当于SQL语句中的count(distinct **)用法。...当然,groupby的强大之处在于,分组依据的字段可以不只一列。例如想统计各班每门课程的平均分,语句如下: ? 不只是分组依据可以用多列,聚合函数也可以是多个。...另外,groupby的分组字段和聚合函数都还存在很多其他用法:分组依据可以是一个传入的序列(例如某个字段的一种变形),聚合函数agg内部的写法还有列表和元组等多种不同实现。...在以上参数中,最重要的有4个: values:用于透视统计的对象列名 index:透视后的行索引所在列名 columns:透视后的列索引所在列名 aggfunc:透视后的聚合函数,默认是求均值 这里仍然以求各班每门课程的平均分为例...分组后如不加['成绩']则也可返回dataframe结果 从结果可以发现,与用groupby进行分组统计的结果很是相近,不同的是groupby返回对象是2个维度,而pivot_table返回数据格式则更像是包含

    2.5K10

    分支和循环(2)

    练习:阅读代码,计算代码输出的结果 答案在图中已经打印出,喜欢动手操作的小伙伴也可以试一下。 5. switch 语句 除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。...5.1 if语句和switch语句的对⽐ 练习:输⼊任意⼀个整数值,计算除3之后的余数  如果使⽤if语句完成,如下: 如果使⽤switch语句改写,就可以是这样的: 上述的代码中,我们要注意的点有:...原因是 switch 语句也是分⽀效果的,只有在 switch 语句中使⽤ break 才能在跳出 switch 语 句,如果某⼀个 case 语句的后边没有 break 语句,代码会继续往下执⾏,有可能执...case和default的顺序问题 在 switch 语句中 case ⼦句和 default ⼦句有要求顺序吗?...default 只能放在最后吗? 其实,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实 际需求的就可以。

    6210

    数据分析之Pandas分组操作总结

    之前介绍过索引操作,现在接着对Pandas中的分组操作进行介绍:主要包含SAC含义、groupby函数、聚合、过滤和变换、apply函数。...d). groupby的[]操作 可以用[]选出groupby对象的某个或者某几个列,上面的均分比较可以如下简洁地写出: df.groupby(['Gender','School'])['Math']....如何计算组内0.25分位数与0.75分位数?要求显示在同一张表上。...整合(Aggregation)分组计算统计量:输入的是每组数据,输出是每组的统计量,在列维度上是标量。...按照年份统计,哪个县在哪年的报告数量最多?这个县所属的州在当年也是报告数最多的吗? 答:按照年份统计,HAMILTON在2017年报告数量最多,该县所属的州PA在当年不是报告数最多的。

    7.9K41

    MSSQL之四 简单查询

    WHERE子句指定逻辑表达式(返回值为真或假的表达式),结果集将返回表达式为真的数据行。 在WHERE子句中,可以包含比较运算符、逻辑运算符。比较运算符有=(等于)、(不等于)、!...可以在ORDER BY子句中指定多个列,查询结果首先按第1列进行排序,对第1列值相同的那些数据行,再按照第2行排序…..依此类推,ORDERBY子句,要写在WHERE子句的后面。...后指定的列进行分组,该字句写在WHERE字句的后面,当在SELECT字句中包含聚合函数时,最适合使用GROUP BY字句。...SELECT字句中的选项列表中出现的列,包含在聚合函数中或者包含在GROUP BY字句中,否则,SQLServer将返回如下错误提示消息: “表名.列名在选择列表中无效,因为该列既不包含在聚合函数中...,也不包含在GROUP BY字句中”。

    8910

    周一不睡觉,也要把pandas groupy 肝完,你该这么学,No.8

    学个pandas在不找点乐趣,咋学啊 大周一的,弄点啥? 遥记得,上一篇最后,我说要写groupby的高级函数 后来自己理了理,忽然觉得真难 不想了写了... ... ?...,是最简单的, 看好数据,写代码就可以了 (说的好像很容易似的) 使用最多的,对我们来说 是想要对数据进行一些基本的应用 也就是分组之后,我们要计算 官方文档里面介绍groupby要实现的效果 就是想模拟...数据库的那个脚本语言(你不会不会写吧,哈哈哈O(∩_∩)O哈哈~) groupby在模仿的就是下面这句话 select col1,col2,count(col3),sum(col4) from one_table...first列下面的a的和,b的和,c的和,d的和 我们可以通过level参数控制 # 这两个一个意思 print(s.groupby(level=0)) print(s.groupby(level='first...')) grouped = s.groupby(level=0) print(grouped.sum()) 搞定,看看结果 没毛病 对于second列,我们也可以分组求和的哦 ?

    86132

    Power Pivot中3大汇总函数对比解释及使用介绍

    (可以有多个) 可选第3参数 Name 分组后的新列名,可以有多个汇总(文本格式) 可选第4参数 Expression 新增列的表达式,可以有多个 B....返回 表——包含汇总依据及新列名的表 C. 注意事项 汇总的依据必须是表或者相关表的列。 不能用于虚拟添加列这种。 尽量用其他方式来替换第3和第4参数。...(可以用SummarizeColumns或者AddColumns方式来得到同样结果) D. 作用 创建按指定列分组后的计算表达式汇总 E. 案例 表3 要求按学科算平均成绩。...返回 表——基于指定分组列计算值的表。 C. 注意事项 不支持上下文 不返回无值的汇总 D. 作用 返回的计算值为非空值的分组。 E....分组依据的列 第3可选重复参数 Name 增加列的名称,文本格式 第4可选重复参数 Expression 增加列的计算表达式 B.

    1.7K20

    解决SQL中的“Expression #1 of SELECT list is not in GROUP BY clause“错误

    目前就职于国企并担任技术经理,拥有丰富的项目开发经验和产品设计能力。希望在不断的学习过程中,可以帮助到更多的人,结交更多的朋友。...这个错误主要是由于SELECT列表中的列没有在GROUP BY子句中进行分组。本文将详细讲解该错误的成因,并提供有效的解决方案。 正文内容(详细介绍) 1....id列没有在GROUP BY子句中进行分组,同时它也不是一个聚合函数,SQL引擎无法知道如何处理该列的数据。...解决方法 3.1 方法一:将所有非聚合列包含在GROUP BY子句中 我们可以通过将所有非聚合列包含在GROUP BY子句中来解决该问题: SELECT id, name, COUNT(*) FROM...name; 这种方法可以确保SELECT列表中的每一列都能够正确处理。

    14510
    领券