第四章多组查询及组函数
- 格式:doc
- 大小:163.50 KB
- 文档页数:7
如何使用Excel进行多条件查询和过滤第一章:Excel基础知识回顾在进行多条件查询和过滤之前,我们需要了解一些Excel的基础知识。
Excel是一款常用的电子表格软件,用于数据收集、分析和管理。
它提供了丰富的功能,包括数据排序、筛选和条件查询等。
在本章中,我们将回顾Excel的基本操作和常用功能。
第二章:使用高级筛选进行多条件查询Excel提供了高级筛选功能,可以帮助我们按照多个条件对数据进行查询。
我们可以通过设置多个条件来筛选出符合要求的数据,从而快速找到所需信息。
1. 打开Excel表格并选中要筛选的数据范围。
2. 在“数据”选项卡中,点击“高级”按钮。
3. 在弹出的“高级筛选”对话框中,选择要筛选的数据范围和条件范围。
4. 在条件范围中输入需要的条件。
5. 根据需要选择是否将筛选后的结果复制到其他位置。
6. 点击“确定”按钮完成筛选。
第三章:使用数据透视表进行多条件过滤Excel的数据透视表功能可以帮助我们更方便地进行多条件过滤。
通过数据透视表,我们可以根据多个字段对数据进行分组、汇总和过滤,以便更好地理解和分析数据。
1. 选择要创建数据透视表的数据范围。
2. 在“数据”选项卡中,点击“数据透视表”按钮。
3. 在弹出的对话框中,选择数据源和数据范围。
4. 将需要筛选的条件拖拽到“行标签”或“列标签”区域。
5. 根据需要拖拽字段到“值”区域进行汇总。
6. 通过“筛选”功能对数据进行多条件过滤。
第四章:使用函数进行多条件查询Excel提供了多种函数,可以帮助我们进行多条件查询和过滤。
例如,我们可以使用IF函数、AND函数和OR函数等来实现多个条件的判断和筛选。
1. 在结果列中使用IF函数来判断每一行是否符合要求。
2. 结合AND函数和OR函数可以实现多个条件的组合筛选。
3. 使用VLOOKUP函数或INDEX和MATCH函数可以在符合条件的数据中查找特定的值。
第五章:使用自动筛选进行多条件过滤Excel还提供了自动筛选功能,可以方便地进行多条件过滤。
第四章 指数函数与对数函数知识点一、指数及指数幂的运算 1.根式的概念a 的n 次方根的定义:一般地,如果n x a =,那么x 叫做a 的n 次方根,其中*1,n n N >∈当n 为奇数时,正数的n 次方根为正数,负数的n 次方根是负数,当n 为偶数时,正数的n次方根有两个,这两个数互为相反数可以表示为 负数没有偶次方根,0的任何次方根都是0.n 叫做根指数,a 叫做被开方数. 2.n 次方根的性质:(1)当n a =;当n ,0,,0;a a a a a ≥⎧==⎨-<⎩(2)na =3.分数指数幂的意义:)0,,,1m na a m n N n =>∈>;()10,,,1m nm naa m n N n a-=>∈>要点诠释:0的正分数指数幂等于0,负分数指数幂没有意义. 4.有理数指数幂的运算性质:()0,0,,a b r s Q >>∈(1)r s r s a a a += (2)()r srsa a = (3)()rr rab a b =知识点二、指数函数及其性质 1.指数函数概念一般地,函数()0,1x y a a a =>≠且叫做指数函数,其中x 是自变量,函数的定义域为R . 2.指数函数函数性质:1.对数的定义(1)若(0,1)xa N a a =>≠且,则x 叫做以a 为底N 的对数,记作log a x N =,其中a 叫做底数,N 叫做真数.(2)负数和零没有对数.(3)对数式与指数式的互化:log (0,1,0)xa x N a N a a N =⇔=>≠>.2.几个重要的对数恒等式log 10a =,log 1a a =,log b a a b =.3.常用对数与自然对数常用对数:lg N ,即10log N ;自然对数:ln N ,即log e N (其中 2.71828e =…). 4.对数的运算性质如果0,1,0,0a a M N >≠>>,那么 ①加法:log log log ()a a a M N MN += ②减法:log log log a a aM M N N-= ③数乘:log log ()na a n M M n R =∈④log a NaN =⑤log log (0,)b n a a nM M b n R b=≠∈ ⑥换底公式:log log (0,1)log b a b NN b b a=>≠且知识点四:对数函数及其性质 1.对数函数定义一般地,函数()log 0,1a y x a a =>≠且叫做对数函数,其中x 是自变量,函数的定义域()0,+∞. 2.对数函数性质:1.函数零点的判定(1)利用函数零点存在性的判定定理如果函数()y f x =在一个区间[]a b ,上的图象不间断,并且在它的两个端点处的函数值异号,即()()0f a f b <,则这个函数在这个区间上,至少有一个零点,即存在一点()0x a b ∈,,使()00f x =,这个0x 也就是方程()0f x =的根.要点诠释:①满足上述条件,我们只能判定区间内有零点,但不能确定有几个.若函数在区间内单调,则只有一个;若不单调,则个数不确定.②若函数()f x 在区间[],a b 上有()()0f a f b ⋅>,()f x 在(,)a b 内也可能有零点,例如2()f x x =在[]1,1-上,2()23f x x x =--在区间[]2,4-上就是这样的.故()f x 在(),a b 内有零点,不一定有()()0f a f b ⋅<.③若函数()f x 在区间[],a b 上的图象不是连续不断的曲线,()f x 在(),a b 内也可能是有零点,例如函数1()1f x x=+在[]2,2-上就是这样的. (2)利用方程求解法求函数的零点时,先考虑解方程()0f x =,方程()0f x =无实根则函数无零点,方程()0f x =有实根则函数有零点.(3)利用数形结合法函数()()()F x f x g x =-的零点就是方程()()f x g x =的实数根,也就是函数()y f x =的图象与()y g x =的图象交点的横坐标.2.用二分法求函数零点的一般步骤: 已知函数()y f x =定义在区间D 上,求它在D 上的一个零点x 0的近似值x ,使它满足给定的精确度. 第一步:在D 内取一个闭区间[]00,a b D ⊆,使()0f a 与()0f b 异号,即()()000f a f b ⋅<,零点位于区间[]00,a b 中.第二步:取区间[]00,a b 的中点,则此中点对应的坐标为()()0000001122x a b a a b =+-=+. 计算()0f x 和()0f a ,并判断:①如果()00f x =,则0x 就是()f x 的零点,计算终止;②如果()()000f a f x ⋅<,则零点位于区间[]00,a x 中,令1010,a a b x ==;③如果()()000f a f x ⋅>,则零点位于区间[]00,x b 中,令1010,a x b b == 第三步:取区间[]11,a b 的中点,则此中点对应的坐标为()()1111111122x a b a a b =+-=+. 计算()1f x 和()1f a ,并判断:①如果()10f x =,则1x 就是()f x 的零点,计算终止;②如果()()110f a f x ⋅<,则零点位于区间[]11,a x 中,令2121,a a b x ==;③如果()()110f a f x ⋅>,则零点位于区间[]11,x b 中,令2121,a x b b ==;……继续实施上述步骤,直到区间[],n n a b ,函数的零点总位于区间[],n n a b 上,当n a 和n b 按照给定的精确度所取的近似值相同时,这个相同的近似值就是函数()y f x =的近似零点,计算终止.这时函数()y f x =的近似零点满足给定的精确度.要点诠释:(1)第一步中要使:①区间长度尽量小;②()f a 、()f b 的值比较容易计算且()() <0f a f b .(2)根据函数的零点与相应方程的根的关系,求函数的零点和求相应方程的根式等价的.对于求方程()()f x g x =的根,可以构造函数()()()F x f x g x =-,函数()F x 的零点即为方程()()f x g x =的根. 知识点六:函数的实际应用求解函数应用题时一般按以下几步进行: 第一步:审题弄清题意,分清条件和结论,理顺数量关系,初步选择模型. 第二步:建模在细心阅读与深入理解题意的基础上,引进数学符号,将问题的非数学语言合理转化为数学语言,然后根据题意,列出数量关系,建立函数模型.这时,要注意函数的定义域应符合实际问题的要求.第三步:求模运用数学方法及函数知识进行推理、运算,求解数学模型,得出结果. 第四步:还原把数学结果转译成实际问题作出解答,对于解出的结果要代入原问题中进行检验、评判,使其符合实际背景.上述四步可概括为以下流程:实际问题(文字语言)⇒数学问题(数量关系与函数模型)⇒建模(数学语言)⇒求模(求解数学问题)⇒反馈(还原成实际问题的解答).类型一:指数、对数运算 例1.计算(1) 2221log log 12log 422-; (2)33lg 2lg 53lg 2lg5++; (3)222lg5lg8lg5lg 20lg 23+++;(4)lg0.7lg20172⎛⎫⋅ ⎪⎝⎭【思路点拨】运算时尽量把根式转化为分数指数幂,而小数也要化为分数为好. 【答案】(1)12-;(2)1;(3)3;(4)14。
第4章多表查询与组函数【考点】⏹各种类型组函数、使用分组函数注意事项⏹分组(groupby)语句和分组后过滤(having)语句⏹SQL语句的执行顺序⏹内连接、外连接、交叉连接、自然连接、全连接查询分类⏹笛卡尔积⏹子查询与子查询多值问题的处理多表查询DQL(数据查询语言)查询表中的所有数据语法:SELECT列名FROM表名[WHERE-->GROUPBY-->HAVING-->ORDERBY]语法:SELECTselection_list/*要查询的列名称*/FROMtable_list/*要查询的表名称*/WHEREcondition/*行条件*/GROUPBYgrouping_columns/*对结果分组*/HAVINGcondition/*分组后的行条件*/ORDERBYsorting_columns/*对结果分组*/LIMIToffset_start,row_count/*结果限定*/DML是对表中的数据进行增、删、改的操作。
不要与DDL(数据定义语言)混淆了。
查询代码的书写顺序和执行顺序查询语句书写顺序:select–from-where-groupby-having-orderby-limit查询语句执行顺序:from->where-->groupby-->having-->select-->orderby -->limit注:其中WHERE语句执行顺序是从右到左组函数(多行函数,分组函数)注:组函数会自动忽略空值,NVL函数使分组函数无法忽略空值AVG(expr)求平均值COUNT([DISTINCT]expr)统计行数,当expr=*时,所有的行数,expr=COLUMN时会自动过滤对应列的空值的行数DISTINCT去掉重复行MAX(expr)求最大值MIN(expr)求最小SUM(expr)求和分组函数(GROUP BY)注:SELECT中的列不在组函数中就必须在GROUPBY中多个列的分组:先按照第一个列分组,如果相同,再第二个列分组,依次类推SELECT deptno,job,AVG(sal) FROM emp GROUPBY deptno,job;Oracle的增强GROUP BY:用于做财务报表breakondeptnoskip2--部门号只显示一个,不同的部门号跳过2行Break on null关闭设置GROUP BY ROLLUP(a,b)增强分组例子SELECT deptno,job,SUM(sal)FROM emp GROUPBYROLLUP(deptno,job)上面代码相当于下面几个分组函数的和SELECT deptno,job,SUM(sal) FROM emp GROUP BY deptno,job;+SELECT deptno,SUM(sal) FROM emp GROUP BY deptno,job;+SELECT SUM(sal) FROM emp GROUPBY deptno, job即:GROUPBYa,b+GROUPBYa+没有GROUPBY过滤分组(HA VING)注:不能再WHERE子句中使用组函数可以在HAVING子句中使用组函数,尽量使用WHERESELECT deptno,job,AVG(sal) FROM emp GROUP BY deptno,jobHAVINGAVG(sal)>300;重点:HAVING可以和组函数配合使用,不是必须和GROUPBY配合,例子如下SELECTCOUNT(*) from dual HAVING COUNT(*)>0;连接类型1)内连接(innerjoin(可简写为join))内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。
1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复属性。
(区别于自然连接)2、不等连接:在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。
这些运算符包括>、>=、<=、<、!>、!<和<>。
teacher和student表eg1:等值连接:SELECT S.*, T.* FROM STUDENT S INNER JOIN TEACHER T ON S.TEACHERID = T.ID;;//注意oracle重命名table不能加as只需加空格即可,as可用于重命名列结果:(注意结果中包含重复属性,重复的属性结果中重命名了)eg2:SELECT * FROM STUDENT JOIN TEACHER ON STUDENT.DEPTNO= TEACHER.DEPTNO;2)自然连接(naturaljoin)自然连接是在广义笛卡尔积R×S中选出同名属性上符合相等条件元组,再进行投影,去掉重复的同名属性,组成新的关系。
即自然连接是在两张表中寻找那些数据类型和列名都相同的字段,然后自动地将他们连接起来,并返回所有符合条件按的结果。
eg1:SELECT STUDNET.CLASSID,TEACHER.DEPTNO FROM STUDENT NATURAL JOIN TEACHER;报错:(不能加限定条件)SQL错误:ORA-25155:NATURAL联接中使用的列不能有限定词eg2:SELECT * FROM STUDENT NATURAL JOIN TEACHER;分析:两个表中有两个相同属性,TEACHERID和DEPTNO,不用加限定条件即按照这两个字段连接结果:(注意deptno属性只有一个)下面对比使用innerjoin的结果:(包含重复属性,并且连接方式区别于自然连接)SELECT * FROM STUDENT JOIN TEACHER ON STUDENT.DEPTNO= TEACHER.DEPTNO;3)外连接(outerjoin)外连接,返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接或左连接))、右表(右外连接或右连接)或两个边接表(全外连接)中的所有数据行。
1.leftjoin(左联接)等价于(leftouterjoin)返回包括左表中的所有记录和右表中联结字段相等的记录;2.rightjoin(右联接)等价于(rightouterjoin)返回包括右表中的所有记录和左表中联结字段相等的记录;3.fulljoin(全连接)等价于(fullouterjoin)查询结果等于左外连接和右外连接的和eg1:SELECT S.*, T.* FROM STUDENT S LEFT JOIN TEACHER T ON S.CLASSNO = T.CLASS;输出结果:(包含STUDENT 中的所有记录和满足条件的记录)eg2:SELECT S.*, T.* FROM STUDENT S RIGHT JOIN TEACHER T ON S.CLASSNO = T.CLASS;结果:eg3:SELECT S.*, T.* FROM STUDENT S FULL JOIN TEACHER T ON S.CLASSNO = T.CLASS;输出:(因为teacher中有的对应STUDENT 中都有,所以结果和leftjoin相同)4)交叉连接(crossjoin)交叉连接不带ON子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
eg1:SELECT S.*, T.* FROM STUDENT S CROSS JOIN TEACHER T ;等价于:SELECT S.*, T.* FROM STUDENT S , TEACHER T ;输出结果:5)自连接连接的表是同一张表,使用自连接可以将自身表的一个镜像当作另一个表来对待,从而能够得到一些特殊的数据。
用途举例:计算公交链路换乘问题(见eg2)eg1:SELECT S1.*, S2.* FROM STUDENT S1 , STUDENT S2 WHERE S1.DEPTNO=S2.DEPTNO AND S1.CLASSNO=S2.CLASSNO;结果:eg2:table route(num, company, pos, stop)SELECT * FROM route R1, route R2 WHERE R1.stop=R2.stop;可查询公用同一公交车站的所有路线3.总结1)即使是在连接条件不满足的情况下,外部连接也会在结果集内返回行,而内部连接不会在结果集类返回行当外部连接不满足连接条件时,通常返回一个表中的列,但是第二个表中没有返回值--为null2)自然连接不包含重复的属性3)交叉连接是两个表数据笛卡尔积(相当于不加连接条件)笛卡儿积笛卡尔积(多张表相乘)笛卡尔积:多张表关联,将表的所有信息都要显示出来,如果管理不到的数据用null代替。
1.内连接inner join on内连接:笛卡尔积中,只显示有关联的数据,无关联不显示。
select * from lefttable 左表,righttable 右表where 左表.主键=右表.外键;select * from lefttable 左表inner join 右表on 左表.主键=右表.外键;2.左(外)连接left(outer)join on笛卡尔积中,左边表中的数据必须都显示select * from 左表left join 右表 on 左表.主键=右表.外键;select * from 左表,右表 where 左表.主键=右表.外键(+);3.右连接right join on笛卡尔积中,右边表中的数据必须都显示select * from 左表right join 右表 on 左表.主键=右表.外键; select * from 左表,右表 where 左表.主键(+)=右表.外键;。