对数据集进行分类,并在每组数据上进行聚合操作,是非常常见的数据处理,类似excel里的分组统计或数据透视表功能。...不同的聚合方法 3.数据透视 数据透视采用pivot_table方法,和excel数据透视表功能类似,其实可以和groupby分组统计进行相互转化 它带有许多参数: data:一个DataFrame对象...values:要汇总的一列或一列列表。 index:与数据或它们的列表具有相同长度的列,Grouper,数组。在数据透视表索引上进行分组的键。如果传递了数组,则其使用方式与列值相同。...columns:与数据或它们的列表具有相同长度的列,Grouper,数组。在数据透视表列上进行分组的键。如果传递了数组,则其使用方式与列值相同。...aggfunc:用于汇总的函数,默认为numpy.mean。 ? 演示数据 数据透视操作 ? 简单的数据透视对不同列使用不同的方法 ? 对不同列使用不同方法 margins增加合计项 ?
.): 指定要索引的表列名。你可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。ASC和DESC(可选): 用于指定索引的排序顺序。默认情况下,索引以升序(ASC)排序。...index_name: 指定要创建的索引的名称。索引名称在表中必须是唯一的。(column1, column2, ...): 指定要索引的表列名。你可以指定一个或多个列作为索引的组合。....): 指定要索引的表列名。你可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。ASC和DESC(可选): 用于指定索引的排序顺序。默认情况下,索引以升序(ASC)排序。...(column1, column2, ...): 指定要索引的表列名。你可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。ASC和DESC(可选): 用于指定索引的排序顺序。...UNIQUE (column1, column2, ...): 指定要索引的表列名。你可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。
简单记录下Oracle序列、索引、同义词的相关知识。...一、常见的数据库对象 二、序列 序列: 可供多个用户用来产生唯一数值的数据库对象 自动提供唯一的数值 共享对象 主要用于提供主键值 将序列值装入内存可以提高访问效率 ①、创建序列 CREATE SEQUENCE...④、使用序列 1、将序列值装入内存可提高访问效率 2、序列在下列情况下出现裂缝: 回滚 系统异常 多个表同时使用同一序列 3、如果不将序列的值装入内存(NOCACHE), 可使用表 USER_SEQUENCES...三、索引 一种独立于表的模式对象, 可以存储在与表不同的磁盘或表空间中 索引被删除或损坏, 不会对表产生影响, 其影响的只是查询的速度 索引一旦建立, Oracle 管理系统会对其进行自动维护, 而且由...PRIMARY KEY 或 UNIQUE 约束后系统自动在相应的列上创建唯一性索引 手动创建: 用户可以在其它列上创建非唯一的索引,以加速查询 在一个或多个列上创建索引 CREATE INDEX index
检索例子: 确定表中行数 获得表中行组的和 找出表列 MySQL提供了5个聚集函数。 聚集函数:运行在行组上,计算和返回单个值的函数。...SELECT AVG(product_price) AS avg FROM products 注:AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出,为了获得多个列的平均值,必须使用多个...)如果指定某一列,如果列上有null,则会忽略该行;但是COUNT(*)不会。...MAX():求某一列上的最大值(最大数值或日期,对于文本数据返回最后一行,会自动忽略null值行)。...MIN():求某一列上的最小值(最小值与最小日期,对于文本数据返回第一行,会自动忽略null值行)。 SUM():求某一列上的所有值之和(会自动忽略null值行)。
使用索引需要注意的地方: 1、避免在索引列上使用NOT , 我们要避免在索引列上使用NOT, NOT会产生在和在索引列上使用函数相同的影响....当ORACLE”遇到”NOT,他就会停止使用索引转而执行全表扫描. 2、避免在索引列上使用计算. WHERE子句中,如果索引列是函数的一部分.优化器将不使用索引而使用全表扫描....假 设 EMPNO是一个数值类型的索引列....为了避免ORACLE对你的SQL进行隐式的类型转换, 最好把类型转换用显式表现出来. 注意当字符和数值比较时, ORACLE会优先转换数值类型到字符类型 6、索引的一些“脾气” a....如果检索数据量超过30%的表中记录数.使用索引将没有显著的效率提高. b. 在特定情况下, 使用索引也许会比全表扫描慢, 但这是同一个数量级上的区别.
这种类型的检索例子有: 确定表中行数(或者满足某个条件或包含某个特定值的行数); 获得表中某些行的和; 找出表列(或所有行或某些特定的行)的最大值、最小值、平均值。...为了获得多个列的平均值,必须使用多个AVG()函数。 AVG()函数忽略列值为 NULL 的行。...COUNT()函数 COUNT()函数进行计数,确定表中行的数目或符合特定条件的行的数目,有两种使用方式: 使用 COUNT(*) 对表中行的数目进行计数,不管表列中包含的是空值( NULL )还是非空值...屏幕快照 2018-05-31 06.00.56.png 提示:对非数值数据使用MAX() MAX()用来找出最大的数值或日期值,但许多 DBMS 允许它用来返回任意列中的最大值,包括返回文本列中的最大值...提示:在多个列上进行计算 利用标准的算术操作符,所有聚集函数都可用来执行多个列上的计算。SUM()函数忽略列值为 NULL 的行。
后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas 前言 本系列上一节文章最后我随手使用了 pandas 中的透视表操作,之后有些小伙伴询问我相关的问题。...行标签,survived 字段拖入 列标签 - 还需要统计人数,人名总是有的,因此把 name 字段拖入 数值区域 - 透视表立刻出结果,行标签 放入的字段的唯一值,被显示在透视表左侧。...列标签 放入的字段的唯一值,被显示在透视表的上方 只看数值看不出门路,设置百分比吧: - 点中透视表任意一格,鼠标右键 - 按上图指示完成 - 女性 生还率远高于 男性!!...: Excel 透视表中的 列标签 - 参数 values:Excel 透视表中的 数值区域 - 参数 aggfunc:Excel 透视表中的 数值区域 的字段的统计方式(Excel 默认是计数) "...很简单,pivot_table 中的大部分参数都可以放入多个字段(跟 Excel 透视表操作一样): - index 参数传入多个字段的列表 从结果看到,每个等级的船舱还是"女性比男性更可能生还" "
后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas 前言 本系列上一节文章最后我随手使用了 pandas 中的透视表操作,之后有些小伙伴询问我相关的问题。...行标签,survived 字段拖入 列标签 - 还需要统计人数,人名总是有的,因此把 name 字段拖入 数值区域 - 透视表立刻出结果,行标签 放入的字段的唯一值,被显示在透视表左侧。...列标签 放入的字段的唯一值,被显示在透视表的上方 只看数值看不出门路,设置百分比吧: - 点中透视表任意一格,鼠标右键 - 按上图指示完成 - 女性 生还率远高于 男性!!...:Excel 透视表中的 列标签 - 参数 values:Excel 透视表中的 数值区域 - 参数 aggfunc:Excel 透视表中的 数值区域 的字段的统计方式(Excel 默认是计数) "好像少了点东西...很简单,pivot_table 中的大部分参数都可以放入多个字段(跟 Excel 透视表操作一样): - index 参数传入多个字段的列表 从结果看到,每个等级的船舱还是"女性比男性更可能生还" "
当ORACLE找出执行查询和 Update 语句的最佳路径时,ORACLE优化器将使用索引. 同样在联结多个表时使用索引也可以提高效率....(21)避免在索引列上使用NOT通常, 我们要避免在索引列上使用 NOT, NOT会产生在和在索引列上使用函数相同的影响.当 ORACLE”遇到”NOT,就会停止使用索引转而执行全表扫描. (22)避免在索引列上使用计算...: 如果索引是建立在多个列上,只有在它的第一个列(leadingcolumn)被where子句引用时,优化器才会选择使用该索引.这也是一条简单而重要的规则,当仅引用索引的第二个列时,优化器使用了全表扫描而忽略了索引...(30)避免改变索引列的类型.:当比较不同数据类型的数据时, ORACLE 自动对列进行简单的类型转换.假设 EMPNO 是一个数值类型的索引列....为了避免ORACLE 对你的SQL 进行隐式的类型转换,最好把类型转换用显式表现出来. 注意当字符和数值比较时, ORACLE会优先转换数值类型到字符类型。
2、使用表的别名: 当在SQL语句中连接多个表时, 尽量使用表的别名并把别名前缀于每个列上。这样一来, 就可以减少解析的时间并减少那些由列歧义引起的语法错误。...当ORACLE找出执行查询和Update语句的最佳路径 时, ORACLE优化器将使用索引。同样在联结多个表时使用索引也可以提高效率。...22、避免在索引列上使用NOT: NOT会产生在和在索引列上使用函数相同的影响。当ORACLE遇到NOT,就会停止使用索引转 而执行全表扫描。...: 如果索引是建立在多个列上,只有在它的第一个列(leading column)被where子句引用时, 优化器才会选择使用该索引。...为了避免ORACLE对你的SQL进行隐式的类 型转换, 最好把类型转换用显式表现出来。 注:当字符和数值比较时, ORACLE会优先转换数值类型到字符类型。
三个数值的计算方法分别为: 分成贷款金额1=贷款金额*分成比例1 分成贷款金额2=贷款金额*分成比例2 分成贷款金额3=贷款金额*分成比例3 然后将单位1及分成贷款金额1拖放到透视表的行区域及值区域。...最后一步就是运用VlOOKUP将同一家网点的同种贷款金额整合相加到日报相对应的单元格里,实现最后的报表输出。...存在多个分成比例产生了很多重复性的工作。由于每笔贷款的三个分成比例都是对同一个贷款金额进行分成,我们可以将贷款金额分别与分成单位1、2、3及分成比例1、2、3组成三张分表,然后将分表纵向追加。...仅提出以下建议,供大家参考, 利用read_excel()的usecols参数对表列进行指定,排除不必要的干扰列。 养成数据加载以后,使用head()进行预览的习惯。...3.4数据追加合并 接下来我们需求是将三个分离的表进行纵向的拼接。在我们的例子中,需要将三个表的单位及分成比例字段追加在同一列。但是目前三个新表中的单位及分成比例字段名字是不一致的,不能直接追加。
当ORACLE找出执行查询和Update语句的最佳路径时, ORACLE优化器将使用索引. 同样在联结多个表时使用索引也可以提高效率....(21) 避免在索引列上使用NOT 通常, 我们要避免在索引列上使用NOT, NOT会产生在和在索引列上使用函数相同的影响. 当ORACLE”遇到”NOT,他就会停止使用索引转而执行全表扫描....: 如果索引是建立在多个列上, 只有在它的第一个列(leading column)被where子句引用时,优化器才会选择使用该索引....假设 EMPNO是一个数值类型的索引列....注意当字符和数值比较时, ORACLE会优先转换数值类型到字符类型 (31) 需要当心的WHERE子句: 某些SELECT 语句中的WHERE子句不使用索引. 这里有一些例子.
在开始深入了解 SQL 聚合函数之前,让我们先了解一下它们的基本概念。SQL 聚合函数是一组用于在数据库表的列上执行计算的函数。它们通常用于执行统计操作,例如计算总行数、总和、平均值、最大值或最小值。...SUM() SUM() 函数用于计算某列中所有数值的总和。它常用于计算数值型列的总和。...AVG() AVG() 函数用于计算某列中所有数值的平均值。它通常用于计算数值型列的平均值。...GROUP BY 子句 GROUP BY 子句用于将结果集按照一个或多个列的值进行分组。它允许我们在每个分组上应用聚合函数,从而生成每个分组的摘要信息。...使用聚合函数进行数据透视 聚合函数还可以用于数据透视,将数据表重新排列为透视表。透视表将不同的列值作为行,聚合函数的结果作为列。这在分析数据时非常有用。 7.
当oracle找出执行查询 和 update 语句的最佳路径时, oracle优化器将使用索引. 同样在联结多个表时使用 索引也可以提高效率....: 如果索引是建立在多个列上, 只有在它的第一个列(leading column)被 where 子句引 用时,优化器才会选择使用该索引....假设 EMPNO 是一个数值类型的索引列....注意当字符和数值比较时, oracle会优先转换数值类型到字符类型 31.需要当心的 where子句: 某些 select语句中的 where子句不使用索引. 这里有一些例子....在特定情况下, 使用索引也许会比全表扫描慢, 但这是同一个数量级上的区别. 而通常情况下,使用索引比全表扫描要块几倍乃至几千倍!
当ORACLE”遇到”NOT,他就会停止使用索引转而执行全表扫描. (22) 避免在索引列上使用计算....: 如果索引是建立在多个列上, 只有在它的第一个列(leading column)被where子句引用时,seo/' target='_blank'>优化器才会选择使用该索引....假设 EMPNO是一个数值类型的索引列....注意当字符和数值比较时, ORACLE会优先转换数值类型到字符类型 (31) 需要当心的WHERE子句: 某些SELECT 语句中的WHERE子句不使用索引. 这里有一些例子....在特定情况下, 使用索引也许会比全表扫描慢, 但这是同一个数量级上的区别. 而通常情况下,使用索引比全表扫描要块几倍乃至几千倍!
第二种查询允许Oracle对salary列使用索引,而第一种查询则不能使用索引。 2. SQL书写的影响 (a) 同一功能同一性能不同写法SQL的影响。...当ORACLE找出执行查询和Update语句的最佳路径时, ORACLE优化器将使用索引. 同样在联结多个表时使用索引也可以提高效率....(21) 避免在索引列上使用NOT,通常我们要避免在索引列上使用NOT, NOT会产生在和在索引列上使用函数相同的影响. 当ORACLE”遇到”NOT,他就会停止使用索引转而执行全表扫描。...: 如果索引是建立在多个列上, 只有在它的第一个列(leading column)被where子句引用时,优化器才会选择使用该索引....为了避免ORACLE对你的SQL进行隐式的类型转换, 最好把类型转换用显式表现出来. 注意当字符和数值比较时, ORACLE会优先转换数值类型到字符类型。
但是用IN的SQL性能总是比较低的,从ORACLE执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别: ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询...当ORACLE 找出执行查询和Update 语句的最佳路径时, ORACLE 优化器将使用索引. 同样在联结多个表时使用索引也可以提高效率....19、避免在索引列上使用NOT 通常, 我们要避免在索引列上使用NOT, NOT 会产生在和在索引列上使用函数相同的影响. 当ORACLE"遇到"NOT,他就会停止使用索引转而执行全表扫描....: 如果索引是建立在多个列上, 只有在它的第一个列(leading column)被where 子句引用时, 优化器才会选择使用该索引....注意当字符和数值比较时, ORACLE 会优先 转换数值类型到字符类型 25、需要当心的WHERE 子句: 某些SELECT 语句中的WHERE 子句不使用索引. 这里有一些例子.
当ORACLE找出执行查询和Update语句的最佳路径时, ORACLE优化器将使用索引. 同样在联结多个表时使用索引也可以提高效率....如果索引是建立在多个列上, 只有在它的第一个列(leading column)被where子句引用时,优化器才会选择使用该索引....假设 EMPNO是一个数值类型的索引列....注意当字符和数值比较时, ORACLE会优先转换数值类型到字符类型 回到顶部 (31) 需要当心的WHERE子句 某些SELECT 语句中的WHERE子句不使用索引. 这里有一些例子....在特定情况下, 使用索引也许会比全表扫描慢, 但这是同一个数量级上的区别. 而通常情况下,使用索引比全表扫描要块几倍乃至几千倍!
设置该数值列的精度有时可以减少行的长度。 11、DATE可以精确到秒,TIMESTAMP可以亚秒级,可以配置到纳秒级的精度,其默认精度则为微秒。...如果该列的数值大部分是NULL,并且查询仅需检索非NULL的值,则该列上的索引会比较紧凑并很高效。 因此,决定一列是否可以为NULL的时候,要考虑在该列上是否有使用B*树索引查询NULL的需求。...那些值为NULL的字段通常需要一个字节的存储空间,但如果该行中随后的列的数值都为NULL,则Oracle不需要为这些NULL分配任何空间。...21、Oracle有时会允许将一张表物理地分割成多个数据段,同时让用户保留一个单一逻辑表的印象,例如: LOB数据通常会存储在单独的数据段。 索引组织表中,一些数据将被存储在溢出段中。...可以考虑针对多层次的聚集数据采用多个事实表的方式,采用多个事实表是常用的数据仓库解决方案,但Oracle还提供了一个更复杂的称为物化视图的方法。
Pivot Table 从功能上讲,Pandas 中用透视表 (pivot table) 和 Excel 里面的透视表是一样的。...透视表是一种做多维数据分析的工具,还记得 Pandas 的 split-apply-combine 三部曲吗?首先用 groupby 分组,再平行将某个函数应用到各组上,最后自动连接成一个总表。...df = pd.read_csv('PB Sales.csv') df 设置“单行”为 Pivot 创建透视表的 pivot_table() 函数里面的参数设置很多,学习它最有效的方式是每一步设置一个参数...设置“多行”为 Pivot 上例设置单个 index,接下来看看设置多个 index 的结果是什么样的。这时用列表来存储多个 index。...因为这两列的值是数值型 (int, float),而其他例的值是非数值型 (object),用 df.dtypes 就可看出。
领取专属 10元无门槛券
手把手带您无忧上云