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

问与答62: 如何按指定个数Excel中获得数据所有可能组合?

excelperfect Q:数据放置A中,我要得到这些数据中任意3个数据所有可能组合。如下图1所示,A中存放了5个数据,要得到这5个数据中任意3个数据所有可能组合,如B中所示。...图1 (注:这是无意在ozgrid.com中看到个问题,我觉得程序编写得很巧妙,使用了递归方法来解决,非常简洁,特将该解答稍作整理后辑录于此与大家分享!)...Dim n AsLong Dim vElements As Variant Dim lRow As Long Dim vResult As Variant '要组合数据在当前工作表...Then lRow = lRow + 1 Range("B" & lRow) = Join(vResult, ", ") '每组组合放置中...代码图片版如下: ? 如果将代码中注释掉代码恢复,也就是将组合结果放置中,运行后结果如下图2所示。 ? 图2

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

MySQL专题- 数据库索引使用场景&注意事项

5.mysql 优化器 ---- mysql 优化器会做些特殊优化,比如对于索引查找max(索引)可以直接进行定位。 遇到max,min 是可以列上做索引。...3.索引尽量是高选择 而且要留意基数值,基数值指的是中不同值个数,显然, 最大基数意味着该每个值都是唯,最小基数意味着该所有值都是相同,索引基数相对于表行数较高时,...4.使用更短索引 可以考虑前缀索引,但应确保选择前缀长度可以保证大部分值是唯。 如:alter table test add key(col(6)) 衡量不同前缀索引唯值比例。...6.如果是唯值得,创建唯索引会更佳,也可以确保不会出现重复数据. 7.使用覆盖索引能大大提高性能 覆盖索引:所有数据都可以从索引中得到,而不需要去读物理记录。...例如某个复合索引idx_a_b_c 建立表tb1 a、b、c 列上, 那么对于如下sql 语句 select a,b from tb1 where a = ? and b = ?

78520

Citus 分布式 PostgreSQL 集群 - SQL Reference(查询分布式表 SQL)

聚合使用以下三种方法之执行,优先顺序如下: 当聚合按表分布分组时,Citus 可以将整个查询执行下推到每个 worker。在这种情况下支持所有聚合,并在 worker 上并行执行。...在这步之后,count(distinct) 聚合会自动切换到使用 HLL,而无需对您查询进行任何更改。您应该能够任何列上运行近似 count distinct 查询。...但是,某些情况下,带有 LIMIT 子句 SELECT 查询可能需要从每个分片中获取所有行以生成准确结果。例如,如果查询需要按聚合排序,则需要所有分片中该结果来确定最终聚合值。...它评估几个可能 join 顺序并创建个 join 计划,该计划需要通过网络传输最少数据。 共置连接 当两个表共置时,它们可以它们公共分布列上有效地 join。...重新分区连接 某些情况下,您可能需要在除分布之外列上连接两个表。对于这种情况,Citus 还允许通过动态重新分区查询表来连接非分布 key

3.2K20

面试必备,MySQL索引优化实战总结,涵盖了几乎所

索引从物理上可以分为:聚集索引,非聚集索引 从逻辑上可以分为:普通索引,唯索引,主键索引,联合索引,全文索引 索引优化策略 不要在索引列上进行运算或使用函数 列上进行运算或使用函数会使索引失效,从而进行全表扫描...这时候索引作用只是用于优化WHERE条件查找 如果在a b列上建立联合索引,该如何建立,才能使查询效率最高 select count(distinct a) / count(*), count(distinct...b) / count(*), count(*) from table 执行如下语句,假设3个输出依次为0.001,0.373,16049,可以看到b选择性最高,因此将其作为联合索引,即建立...般区分度80%以上时候就可以建立索引,区分度可以使用 count(distinct(列名))/count(*) 来计算 明确知道只会返回条记录,可以加limit1 当查询确定只有条记录时,...因此我们选择足够长前缀保证较高区分度,同时又不能太长(以便节约空间) 可以进行如下实验 select count(distinct left(email, 5)) / count(*) as col5

36910

MySQL索引优化实战

索引从物理上可以分为:聚集索引,非聚集索引 从逻辑上可以分为:普通索引,唯索引,主键索引,联合索引,全文索引 索引优化策略 不要在索引列上进行运算或使用函数 列上进行运算或使用函数会使索引失效,从而进行全表扫描...这时候索引作用只是用于优化WHERE条件查找 如果在a b列上建立联合索引,该如何建立,才能使查询效率最高 select count(distinct a) / count(*), count(distinct...b) / count(*), count(*) from table 执行如下语句,假设3个输出依次为0.001,0.373,16049,可以看到b选择性最高,因此将其作为联合索引,即建立...般区分度80%以上时候就可以建立索引,区分度可以使用 count(distinct(列名))/count(*) 来计算 明确知道只会返回条记录,可以加limit1 当查询确定只有条记录时,可以加...因此我们选择足够长前缀保证较高区分度,同时又不能太长(以便节约空间) 可以进行如下实验 select count(distinct left(email, 5)) / count(*) as col5

1.1K30

Oracle查询性能优化

同样联结多个表时使用索引也可以提高效率. 2) 另个使用索引好处是,它提供了主键(primary key)性验证.。那些LONG或LONG RAW数据类型, 你可以索引几乎所有....使用索引需要注意地方: 1、避免索引列上使用NOT , 我们要避免索引列上使用NOT, NOT会产生在和在索引列上使用函数相同影响....当ORACLE”遇到”NOT,他就会停止使用索引转而执行全表扫描. 2、避免索引列上使用计算. WHERE子句中,如果索引是函数部分.优化器将不使用索引而使用全表扫描....如果至少有不为空,则记录存在于索引中.举例: 如果唯性索引建立A和B列上, 并且表中存在条记录A,B值为(123,null) , ORACLE将不接受下条具有相同A,B值(123,...除了使用索引,我们还有其他能减少资源消耗方法: 1、用EXISTS替换DISTINCT: 当提交个包含对多表信息(比如部门表和雇员表)查询时,避免SELECT子句中使用DISTINCT.

2.2K20

第12章:汇总数据

12.1.2COUNT()函数: COUNT()有两种用法: COUNT(*)对表中所有数目进行计数。 COUNT(column)对某数目进行计数。...)如果指定某,如果列上有null,则会忽略该行;但是COUNT(*)不会。...MAX():求某列上最大值(最大数值或日期,对于文本数据返回最后行,会自动忽略null值行)。...MIN():求某列上最小值(最小值与最小日期,对于文本数据返回第行,会自动忽略null值行)。 SUM():求某列上所有值之和(会自动忽略null值行)。...12.2聚集不同值: 以上5个函数都可以如下使用: 对所有的行执行计算,指定ALL参数(默认指定,也就是说不需要指定) 对包含不同值,指定DISTINCT参数 查找所有不同价格价格平均值 SELECT

1.2K00

问与答112:如何查找内容是否中并将找到字符添加颜色?

引言:本文整理自vbaexpress.com论坛,有兴趣朋友可以研阅。...Q:我D单元格中存放着些数据,每个单元格中多个数据使用换行分开,E是对D中数据相应描述,我需要在E单元格中查找是否存在D中数据,并将找到数据标上颜色,如下图1所示。 ?...A:实现上图1中所示效果VBA代码如下: Sub ColorText() Dim ws As Worksheet Dim rDiseases As Range Dim rCell...End If Loop Next iDisease Next rCell End Sub 代码中使用Split函数以回车符来拆分单元格中数据并存放到数组中...,然后遍历该数组,E对应单元格中使用InStr函数来查找是否出现了该数组中值,如果出现则对该值添加颜色。

7.1K30

如何写出更快 SQL (db2)

下面我就自己工作经验,分享下如何写出更快 SQL 、查看执行计划来选择更快 SQL 写 SQL 初期,你可能不知道到底是使用 UNION ALL 好还是 FULL JOIN 好,是使用 EXISTS...NOT 我们要避免索引列上使用 NOT , NOT 会产生在和在索引列上使用函数相同影响,会导致使用索引转而执行全表扫描。...避免索引列上使用计算 WHERE 子句中,如果索引是函数部分.优化器将不使用索引而使用全表扫描....总是使用索引 如果索引是建立多个列上, 只有(leading column)被 where 子句引用时,优化器才会选择使用该索引。...ORDER BY 中所有必须包含在相同索引中并保持索引中排列顺序。 ORDER BY 中所有必须定义为非空。

2.1K20

NULL 值与索引()

正是基于这样个特性,对于NULL值列上B 树索引导致了is null/is not null不走索引情形,下面描述了NULL值与索引以及索引NULL列上执行计划,如何使得NULL值走索引情形。...--------------------------------------------- 2 - filter("ID" IS NOT NULL) -->从上面的测试可知,尽管当前表上id列上所有值都为...-->此时Oracle 选择了单列唯索引I_T1_ID -->看到此,不知道大家是否已明白,即哪个列为is not null,则会使用该列上索引,原因还是那句话,索引不存储null值。...null值存在,但由于id上具有not null 约束,且id与val存在复合唯索引,因此此时选择了索引快速全扫描 -->其余不同组合情形大致相同,不再演示 -->为表t1新增条val为null...故基于单列创建B树唯索引或多创建B树复合唯索引情形下,     当列上允许为null值时         where子句使用了基于is null情形,其执行计划走全表扫描。

1.6K20

oracle数据库sql语句优化(循环语句有几种语句)

2、使用表别名: 当在SQL语句中连接多个表时, 尽量使用表别名并把别名前缀于每个列上。这样来, 就可以减少解析时间并减少那些由歧义引起语法错误。...另个使用索引好处是,它提供了主键(primary key)性验证。那些LONG或LONG RAW 数据类型, 你可以索引几乎所有。通常在大型表中使用索引特别有效。...23、避免索引列上使用计算: WHERE子句中,如果索引是函数部分,优化器将不使用索引而使用全表扫描。...如果唯性索引建立A和B列上, 并且表中存在条记录A,B值为(123,null), ORACLE将不接受下条具有相同A,B值(123,null)记录(插入)。...: 如果索引是建立多个列上,只有(leading column)被where子句引用时, 优化器才会选择使用该索引。

2.8K10

SQL 性能优化 总结

个使用索引好处是,它提供了主键(primary key)性验证.。那些 LONG 或 LONG RAW数据类型, 你可以索引几乎所有....如果至少有不为空,则记录存在于索引中.举例:如果唯性索引建立A 和B 列上,并且表中存在条记录A,B 值为(123,null) , ORACLE将不接受下条具有相同 A,B 值(123...: 如果索引是建立多个列上,只有(leadingcolumn)被where子句引用时,优化器才会选择使用该索引.这也是条简单而重要规则,当仅引用索引第二个时,优化器使用了全表扫描而忽略了索引...ORDER BY中所有必须包含在相同索引中并保持索引中排列顺序. ORDER BY中所有必须定义为非空....,类型转换没有发生在索引列上,索引用途没有被改变.现在,假设EMP_TYPE 是个字符类型索引.

1.8K20

Oracle优化07-分析及动态采样-直方图

所以数据段分析对于CBO来讲非常重要。 本篇博文中我们重新梳理下,从头开始,再次走进CBO世界。...DBMS_STATS 包对段表分析有三个层次: 表自身分析: 包括表中行数,数据块数,行长等信息。 分析:包括重复数,列上空值,数据列上分布情况。...索引分析: 包括索引叶块数量,索引深度,索引聚合因子等。 我们现在说直方图,单指第二项最后分析中 数据列上分布情况。...当 Oracle 做直方图分析时,会将要分析列上数据分成很多数量相同部分,每部分称为个 bucket,这样 CBO 就可以非常容易地知道这个列上分布情况,这种数据分布将作为个非常重要因素纳入到执行计划成本计算当中...默认情况下,dbms_stats包会对所有做直方图分析。

27120

SQL 性能调优

个使用索引好处是,它提供了主键(primary key)性验证.。那些LONG或LONG RAW数据类型, 你可以索引几乎所有. 通常, 大型表中使用索引特别有效....回到顶部 (22) 避免索引列上使用计算 WHERE子句中,如果索引是函数部分.优化器将不使用索引而使用全表扫描....如果至少有不为空,则记录存在于索引中.举例: 如果唯性索引建立A和B列上, 并且表中存在条记录A,B值为(123,null) , ORACLE将不接受下条具有相同A,B值(123,...如果索引是建立多个列上, 只有(leading column)被where子句引用时,优化器才会选择使用该索引....ORDER BY中所有必须包含在相同索引中并保持索引中排列顺序. ORDER BY中所有必须定义为非空. WHERE子句使用索引和ORDER BY子句中所使用索引不能并列.

3.2K10

Java SQL语句优化经验

个使用索引好处是,它提供了主键(primary key)性验证.。那些LONG或LONG RAW数据类型, 你可以索引几乎所有. 通常, 大型表中使用索引特别有效....(21) 避免索引列上使用NOT 通常, 我们要避免索引列上使用NOT, NOT会产生在和在索引列上使用函数相同影响....如果至少有不为空,则记录存在于索引中.举例: 如果唯性索引建立A和B列上, 并且表中存在条记录A,B值为(123,null) , ORACLE将不接受下条具有相同A,B值(123,...: 如果索引是建立多个列上, 只有(leading column)被where子句引用时,seo/' target='_blank'>优化器才会选择使用该索引....ORDER BY中所有必须包含在相同索引中并保持索引中排列顺序. ORDER BY中所有必须定义为非空. WHERE子句使用索引和ORDER BY子句中所使用索引不能并列.

2.6K100

SQL优化法则小记

个使用索引好处是,它提供了主键(primary key) 性验证.。那些 long或long raw数据类型, 你可以索引几乎所有. 通常, 大 型表中使用索引特别有效....当 oracle”遇到”not,他就会停止使用索引转而执行全表扫描. 22.避免索引列上使用计算: where子句中,如果索引是函数部分.优化器将不使用索引而使用全表扫描....如果至少有不为空,则记录存在于索引中.举例: 如 果唯性索引建立A和B列上, 并且表中存在条记录 A,B 值为 (123,null) , oracle将不接受下条具有相同 A,B...: 如果索引是建立多个列上, 只有(leading column)被 where 子句引 用时,优化器才会选择使用该索引....order by 中所有必须包含在相同索引中并保持索引中排列顺序. order by中所有必须定义为非空.

2K90
领券