数据库分析函数解析

数据库分析函数解析
数据库分析函数解析

分析函数解析

分析函数的语法结构一般是:分析函数名(参数) OVER (PARTITION BY子句ORDER BY子

句ROWS/RANGE子句)。

即由以下三部分组成:

分析函数名:如sum、max、min、count、avg等聚集函数以及lead、lag行比较函数等;

over:关键字,表示前面的函数是分析函数,不是普通的集合函数;

分析子句:over关键字后面挂号内的内容;

分析子句又由下面三部分组成:

partition by :分组子句,表示分析函数的计算范围,不同的组互不相干;

ORDER BY:排序子句,表示分组后,组内的排序方式;

ROWS/RANGE:窗口子句,是在分组(PARTITION BY)后,组内的子分组(也称窗口),此时分析函数的计算范围窗口,而不是PARTITON。窗口有两种,ROWS和RANGE;

下面分析rows与range窗口子句的用法,先看下面例子:

点击(此处)折叠或打开

1.SQL>edit

2.已写入file afiedt.buf

3.

4. 1 WITH t AS

5. 2 (SELECT(CASE

6. 3 WHEN LEVEL IN(1, 2)THEN

7. 4 1

8. 5 WHEN LEVEL IN(4, 5)THEN

9. 6 6

10. 7 ELSE

11. 8 LEVEL

12. 9 END) ID

13. 10 FROM dual

14. 11 CONNECT BY LEVEL< 10)

15. 12 SELECT id,

16. 13 SUM(ID) over(ORDER BY ID) default_sum,

17. 14 SUM(ID) over(ORDER BY ID RANGE BETWEEN unbounded preceding AND CURRENT ROW) ra

nge_unbound_sum,

18. 15 SUM(ID) over(ORDER BY ID ROWS BETWEEN unbounded preceding AND CURRENT ROW) row

s_unbound_sum,

19. 16 SUM(ID) over(ORDER BY ID RANGE BETWEEN 1 preceding AND 2 following) range_sum,

20. 17 SUM(ID) over(ORDER BY ID ROWS BETWEEN 1 preceding AND 2 following) rows_sum

21. 18*FROM t

22.SQL>/

23.

24. ID DEFAULT_SUM RANGE_UNBOUND_SUM ROWS_UNBOUND_SUM RANGE_SUM ROWS_SUM

25.---------- ----------- ----------------- ---------------- ---------- ----------

26.

27. 1 2 2 1 55

28. 1 2 2 2 5 11

29. 3 5 5 5 316

30. 6 23 23 11 33 21

31. 6 23 23 17 33 25

32. 6 23 23 23 33 27

33. 7 30 30 30 42 30

34. 8 38 38 38 24 24

35. 9 47 47 47 17 17

36.

37.已选择9行。

从上面的例子可知:

1、窗口子句必须和order by 子句同时使用,且如果指定了order by 子句未指定窗口子句,则默认为

RANGE BETWEEN unbounded preceding AND CURRENT ROW,如上例结果集中的defult_sum等于range_unbound_sum;

2、如果分析函数没有指定ORDER BY子句,也就不存在ROWS/RANGE窗口的计算;

3、range是逻辑窗口,是指定当前行对应值的范围取值,列数不固定,只要行值在范围内,对应列都包含

在内,如上例中range_sum(即range 1 preceing and 2 following)例的分析结果:

当id=1时,是sum为1-1<=id<=1+2 的和,即sum=1+1+3=5(取id为1,1,3);

当id=3时,是sum为3-1<=id<=3+2 的和,即sum=3(取id为3);

当id=6时,是sum为6-1<=id<=6+2 的和,即sum=6+6+6+7+8=33(取id为6,6,6,7,8);

以此类推下去,结果如上例中所示。

4、rows是物理窗口,即根据order by 子句排序后,取的前N行及后N行的数据计算(与当前行的值无关,

只与排序后的行号相关),如上例中rows_sum例结果,是取前1行和后2行数据的求和,分析上例rows_sum 的结果:

当id=1(第一个1时)时,前一行没数,后二行分别是1和3,sum=1+1+3=5;

当id=3时,前一行id=1,后二行id都为6,则sum=1+3+6+6=16;

以此类推下去,结果如上例所示。

注:行比较分析函数lead和lag无window(窗口)子句。

keep函数

1、概念:

keep是Oracle下的另一个分析函数,他的用法不同于通过over关键字指定的分析函数,可以用于这样一种场合下:取同一个分组下以某个字段排序后,对指定字段取最小或最大的那个值。

从这个前提出发,我们可以看到其实这个目标通过一般的row_number分析函数也可以实现,即指定rn=1。但是,该函数无法实现同时获取最大和最小值。或者说用first_value和last_value,结合row_number实现,但是该种方式需要多次使用分析函数,而且还需要套一层SQL。于是出现了keep。

语法:min | max(column1) keep (dense_rank first | lastorder by column2) over (partion by column3);

?最前是聚合函数,可以是min、max、avg、sum。。。

?column1为要计算的列;

?dense_rank first,dense_rank last为keep 函数的保留属性,表示分组、排序结果集中第一个、最后一个;

解释:返回按照column3分组后,按照column2排序的结果集中第一个或最后一个最小值

或最大值column1。

2、分析:

SQL> desc t

Name Null? Type

------------------------------------------------- ----------------------------

X VARCHAR2(10)

Y DATE

Z NUMBER

SQL> selectx,to_char(y,'yyyy-mm') y,z from t

2 order by x,y,z

3 /

X Y Z

---------- -----------------

a 2011-02 111

a 2011-02 222

a 2011-02 888

a 2011-03 333

a 2011-04 555

a 2011-04 666

b 2011-02 111

b 2011-02 222

b 2011-03 333

b 2011-04 555

10 rows selected.

SQL>

下面,我们来使用keep函数来看一些例子。

SQL> select x,

2 min(z) keep(dense_rank first order by trunc(y,'mm')) first_min,

3 min(z) keep(dense_rank last order by trunc(y,'mm')) last_min,

4 max(z) keep(dense_rank first order by trunc(y,'mm')) first_max,

5 max(z) keep(dense_rank last order by trunc(y,'mm')) last_max

6 fromt

7 group by x

8 /

X FIRST_MIN LAST_MIN FIRST_MAX LAST_MAX

-------------------- ---------- ---------- ----------

a 111 555 888 666

b 111 555 222 555

这是显示的效果。

我们来分析一下,SQL里面的groupby 是作用于聚会函数的,可以这么理解一下。还有,这里我们头脑里应该有这么一个概念,排序即分组。

结合结果集与keep函数里orderby 子句,我们来看一下表中的数据,然后把表里的数据进行如下划分,

以X为维度,按值a进行划分:

a 2011-02 111

a 2011-02 222

a 2011-02 888

---------------------------------------这些数据划分为第一组。

因为order by是按日期(截止到月)进行排序的,上面的日期都一样。

a 2011-03 333

----------------------------------------这些数据划分为第二组。

a 2011-04 555

a 2011-04 666

----------------------------------------这些数据划分为第三组。

以X为维度,按值b进行划分:

b 2011-02 111

b 2011-02 222

-----------------------------------------第一组

b 2011-03 333

----------------------------------------第二组

b 2011-04 555

----------------------------------------第三组

好,有了上述的划分,我们就不难理解SQL输出的结果集了。下面我们来分析一下SQL中输入的值。结合SQL,

?min(z) keep(dense_rank first order by trunc(y,'mm')) first_min 该子句用来显示,以a为维度,以y为序,显示第一组(因为keep函数里指定是的first子句)中的最小值,所以,它显示为111(结合上述的划分结果来看)。

?min(z) keep(dense_rank last order by trunc(y,'mm')) last_min 该子句用来显示,以a为维度,以y为序,显示最后一组(因为keep函数里指定是的last子句)中的最小值,所以,这显示为555。

下面,我们来再分析一下以X为b的结果。

我们来看一下x=b的那一行,last_min与last_max的值一样。这是因为x为b的最后一组,它只有一行数据,对于一行数据而言,它的最大值与最小值肯定是同一个值了,所以last_min 与last_max一样。

使用其他聚合函数也非常好理解了,比如我使用sum函数。

SQL> select x,

2 sum(z) keep(dense_rank first order by trunc(y,'mm')) first_sum,

3 sum(z) keep(dense_rank last order by trunc(y,'mm')) last_sum

4 fromt

5 group by x

6 /

X FIRST_SUM LAST_SUM

-------------------- ----------

a 1221 1221

b 333 555

最近在工作中,碰到一个问题,后来在处理过程中接触到了KEEP,DENSE_RANK

分析函数,问题瞬间被简单的解决,否则按照常规写法,肯定会写出嵌套语句,但是网上对这个方面的介绍比较少,现在特整理了一下:

从目前查到的来看:DENSE_RANK是和KEEP结合使用的,网上给出的解释是Returns the row ranked first using DENSE_RANK。我的理解是返回 DENSE_RANK函数的第一结果。一般写法是 MIN [ MAX ] (A) KEEP(DENSE_RANK FIRST [ LAST ] ORDER BY B),这里引用别人说的明的解释一下:

DENSE_RANK

功能描述:根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置。组内的数据按ORDER BY子句排序,然后给每一行赋一个号,从而形成一个序列,该序列从1开始,往后累加。每次ORDER BY表达式的值发生变化时,该序列也随之增加。有同样值的行得到同样的数字序号(认为null时相等的)。密集的序列返回的时没有间隔的数。

FIRST

功能描述:从DENSE_RANK返回的集合中取出排在最前面的一个值的行(可能多行,因为值可能相等),因此完整的语法需要在开始处加上一个集合函数以从中取出记录。LAST

功能描述:从DENSE_RANK返回的集合中取出排在最后面的一个值的行(可能多行,因为值可能相等),因此完整的语法需要在开始处加上一个集合函数以从中取出记录。

所以默认排序下,FIRST可以理解是取小值,LAST取大值。而前面的MIN或者MAX则是在KEEP的结果集中取某一字段的最大值或最小值。

EXCEL函数表(最全的函数大全)

函数大全一、数据库函数(13条) 二、日期与时间函数(20条) 三、外部函数(2条) 四、工程函数(39条) 五、财务函数(52条)

六、信息函数(9条) 七、逻辑运算符(6条) 八、查找和引用函数(17条) 九、数学和三角函数(60条)

十、统计函数(80条)

十一、文本和数据函数(28条)

一、数据库函数(13条) 1.DAVERAGE 【用途】返回数据库或数据清单中满足指定条件的列中数值的平均值。 【语法】DAVERAGE(database,field,criteria) 【参数】Database构成列表或数据库的单元格区域。Field指定函数所使用的数据列。Criteria为一组包含给定条件的单元格区域。 2.DCOUNT 【用途】返回数据库或数据清单的指定字段中,满足给定条件并且包含数字的单元格数目。 【语法】DCOUNT(database,field,criteria) 【参数】Database构成列表或数据库的单元格区域。Field指定函数所使用的数据列。Criteria为一组包含给定条件的单元格区域。 3.DCOUNTA 【用途】返回数据库或数据清单指定字段中满足给定条件的非空单元格数目。 【语法】DCOUNTA(database,field,criteria) 【参数】Database构成列表或数据库的单元格区域。Field指定函数所使用的数据列。Criteria为一组包含给定条件的单元格区域。 4.DGET 【用途】从数据清单或数据库中提取符合指定条件的单个值。 【语法】DGET(database,field,criteria) 【参数】Database构成列表或数据库的单元格区域。Field指定函数所使用的数据列。Criteria为一组包含给定条件的单元格区域。 5.DMAX 【用途】返回数据清单或数据库的指定列中,满足给定条件单元格中的最大数值。 【语法】DMAX(database,field,criteria) 【参数】Database构成列表或数据库的单元格区域。Field指定函数所使用的数据列。Criteria为一组包含给定条件的单元格区域。 6.DMIN 【用途】返回数据清单或数据库的指定列中满足给定条件的单元格中的最小数字。 【语法】DMIN(database,field,criteria) 【参数】Database构成列表或数据库的单元格区域。Field指定函数所使用的数据列。Criteria为一组包含给定条件的单元格区域。 7.DPRODUCT 【用途】返回数据清单或数据库的指定列中,满足给定条件单元格中数值乘积。 【语法】DPRODUCT(database,field,criteria) 【参数】同上

数据库常用函数汇总统计

实验二(续):利用SQL语句查询 三、常用库函数及统计汇总查询 1、求学号为 S1学生的总分和平均分; select sum(score) as TotalScore,avg(score)as AveScore from sc where sno='S1' 2、求选修 C1号课程的最高分、最低分及之间相差的分数; select max(score)as MaxScore, min(score)as MinScore, max(score)- min(score)as diff from sc where cno='C1' 3、求选修 C1号课程的学生人数和最高分; select count(distinct sno),max(score) from sc where cno='C 1' 4、求计算机系学生的总数; select count(sno) from s where dept=' 计算机 ' 5、求学校中共有多少个系; select count(distinct dept) as DeptNum from s 6、统计有成绩同学的人数; select count(score) from sc 7、利用特殊函数 COUNT(*)求计算机系学生的总数; select count(*) from s where dept=' 计算机 '

8、利用特殊函数 COUNT(*)求女学生总数和平均年龄;select count(*),avg(age) from s where sex=' 女 ' 9、利用特殊函数 COUNT(*)求计算机系女教师的总数。select count(*) from t where dept=' 计算机 'and sex=' 女 ' 四、分组查询及排序 1、查询各个教师的教师号及其任课门数; select tno,count(*)as c_num from tc group by tno 2、按系统计女教师的人数; select dept,count(tno) from t where sex=' 女 ' group by dept 3、查询选修两门以上课程的学生的学号和选课门数;select sno,count(*)as sc_num from sc group by sno having count(*)>2 4、查询平均成绩大于 70分的课程号和平均成绩; select cno,avg(score) from sc group by cno having avg(score)>70 5、查询选修 C1的学生学号和成绩,并按成绩降序排列;select sno,score

15个常用的Excel函数公式

15个常用的Excel函数公式,拿来即用 1、查找重复内容 =IF(COUNTIF(A:A,A2)>1,"重复","") 2、重复内容首次出现时不提示 =IF(COUNTIF(A$2:A2,A2)>1,"重复","") 3、重复内容首次出现时提示重复 =IF(COUNTIF(A2:A99,A2)>1,"重复","")

4、根据出生年月计算年龄 =DATEDIF(A2,TODAY(),"y") 5、根据身份证号码提取出生年月 =--TEXT(MID(A2,7,8),"0-00-00") 6、根据身份证号码提取性别 =IF(MOD(MID(A2,15,3),2),"男","女") 7、几个常用的汇总公式 A列求和:=SUM(A:A)

A列最小值:=MIN(A:A) A列最大值:=MAX (A:A) A列平均值:=AVERAGE(A:A) A列数值个数:=COUNT(A:A) 8、成绩排名 =RANK.EQ(A2,A$2:A$7) 9、中国式排名(相同成绩不占用名次) =SUMPRODUCT((B$2:B$7>B2)/COUNTIF(B$2:B$7,B$2:B$7))+1 10、90分以上的人数

=COUNTIF(B1:B7,">90") 11、各分数段的人数 同时选中E2:E5,输入以下公式,按Shift+Ctrl+Enter =FREQUENCY(B2:B7,{70;80;90}) 12、按条件统计平均值 =AVERAGEIF(B2:B7,"男",C2:C7) 13、多条件统计平均值 =AVERAGEIFS(D2:D7,C2:C7,"男",B2:B7,"销售")

数据库函数

DECLARE @g geometry; DECLARE @h geometry;空间数据库操作函数 1、STArea() 面积计算 2、STBuffer()缓冲区计算 3、STCrosses()如果geometry实例与另一个geometry实例相交,则返回1。否则,返回0 SET @g = geometry::STGeomFromText('LINESTRING(0 2, 2 0)', 0); SET @h = geometry::STGeomFromText('LINESTRING(0 0, 2 2)', 0); SELECT @g.STCrosses(@h); 4、STDifference()返回一个对象,该对象表示来自一个geometry实例的点,这些点在另一个geometry 实例中不存在 SET @g = geography::STGeomFromText('POL YGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326); SET @h = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326); SELECT @g.STDifference(@h).ToString(); 5、STDisjoint()如果一个geography 实例与另一个geography 实例在空间上不相联,则返回1。否则,返回0 SET @g = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326); SET @h = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326); SELECT @g.STDisjoint(@h) 6、STDistance()返回一个geometry 实例中的点与另一个geometry 实例中的点之间的最短距离 SET @g = geometry::STGeomFromText('POL YGON((0 0, 2 0, 2 2, 0 2, 0 0))', 0); SET @h = geometry::STGeomFromText('POINT(10 10)', 0); SELECT @g.STDistance(@h 7、STEnvelope()返回实例的最小轴对齐边界矩形 SET @g = geometry::STGeomFromText('LINESTRING(0 0, 2 3)', 0); SELECT @g.STEnvelope().ToString() 8、STIntersection()返回一个对象,该对象表示一个Geometry 实例与另一个Geometry 实例的交点 SET @g = geography::STGeomFromText('POL YGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326);

整理的SQL常用函数

create table test (id int, value varchar(10)) insertinto test values('1','aa') insertinto test values('1','bb') insertinto test values('2','aaa') insertinto test values('2','bbb') insertinto test values('2','ccc') insertinto test values('3','aa') insertinto test values('4','bb') select*from test select id, [values] =stuff((select','+ [values] from test t where id = test.id forxmlpath('')), 1 , 1 ,'') from test groupby id stuff(param1,startIndex,length, param2) 说明:将param1中自startIndex(SQL中都是从1开始,而非0)起,删除length个字符,然后用param2替换删掉的字符。*/

COUNT()函数用于返回一个列内所有非空值的个数,这是一个整型值。 由于COUNT(*)函数会忽略NULL值,所以这个查询的结果是2。 三、SUM()函数 SUM()函数是最常用的聚合函数之一,它的功能很容易理解:和AVG()函数一样,它用于数值数据类型,返回一个列范围内所有非空值的总和。 四、CAST()函数 CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。 以下例子用于将文本字符串'123'转换为整型: SELECT CAST('123' AS int) 返回值是整型值123。 如果试图将一个代表小数的字符串转换为整型值,又会出现什么情况呢? SELECT CAST('123.4' AS int) CAST()函数和CONVERT()函数都不能执行四舍五入或截断操作。由于123.4不能用int数据类型来表示,所以对这个函数调用将产生一个错误。 Server: Msg 245, Level 16, State 1, Line 1 Syntax error converting the varchar value '123.4' to a column of data type int. 在将varchar值'123.4' 转换成数据类型int时失败。 要返回一个合法的数值,就必须使用能处理这个值的数据类型。对于这个例子,存在多个可用的数据类型。如果通过CAST()函数将这个值转换为decimal类型,需要首先定义decimal 值的精度与小数位数。在本例中,精度与小数位数分别为9与2。精度是总的数字位数,包括小数点左边和右边位数的总和。而小数位数是小数点右边的位数。这表示本例能够支持的最大的整数值是9999999,而最小的小数是0.01。 SELECT CAST('123.4' AS decimal(9,2)) decimal数据类型在结果网格中将显示有效小数位:123.40 精度和小数位数的默认值分别是18与0。如果在decimal类型中不提供这两个值,SQL Server 将截断数字的小数部分,而不会产生错误。 SELECT CAST('123.4' AS decimal) 结果是一个整数值:123 五、CONVERT()函数 对于简单类型转换,CONVERT()函数和CAST()函数的功能相同,只是语法不同。 CAST()函数一般更容易使用,其功能也更简单。 CONVERT()函数的优点是可以格式化日期和数值,它需要两个参数:第1个是目标数据类型,第2个是源数据。 CONVERT()函数还具有一些改进的功能,它可以返回经过格式化的字符串值,且可以把日期值格式化成很多形式。有28种预定义的符合各种国际和特殊要求的日期与时间输出格式。 六、STR()函数 这是一个将数字转换为字符串的快捷函数。这个函数有3个参数:数值、总长度和小数位数。如果数字的整数位数和小数位数(要加上小数点占用的一个字符)的总和小于总长度,对结果中左边的字符将用空格填充。在下面第1个例子中,包括小数点在内一共是5个字符。结果

EXCEL中常用函数及使用方法

EXCEL中常用函数及使用方法 Excel函数一共有11类:数据库函数、日期与时间函数、工程函数、财务函数、信息函数、逻辑函数、查询和引用函数、数学和三角函数、统计函数、文本函数以及用户自定义函数。 1.数据库函数 当需要分析数据清单中的数值是否符合特定条件时,可以使用数据库工作表函数。例如,在一个包含销售信息的数据清单中,可以计算出所有销售数值大于1,000 且小于2,500 的行或记录的总数。Microsoft Excel 共有12 个工作表函数用于对存储在数据清单或数据库中的数据进行分析,这些函数的统一名称为Dfunctions,也称为D 函数,每个函数均有三个相同的参数:database、field 和criteria。这些参数指向数据库函数所使用的工作表区域。其中参数database 为工作表上包含数据清单的区域。参数field 为需要汇总的列的标志。参数criteria 为工作表上包含指定条件的区域。 2.日期与时间函数 通过日期与时间函数,可以在公式中分析和处理日期值和时间值。 3.工程函数 工程工作表函数用于工程分析。这类函数中的大多数可分为三种类型:对复数进行处理的函数、在不同的数字系统(如十进制系统、十六进制系统、八进制系统和二进制系统)间进行数值转换的函数、在不同的度量系统中进行数值转换的函数。 4.财务函数 财务函数可以进行一般的财务计算,如确定贷款的支付额、投资的未来值或净现值,以及债券或息票的价值。财务函数中常见的参数: 未来值(fv)--在所有付款发生后的投资或贷款的价值。 期间数(nper)--投资的总支付期间数。 付款(pmt)--对于一项投资或贷款的定期支付数额。 现值(pv)--在投资期初的投资或贷款的价值。例如,贷款的现值为所借入的本金数额。 利率(rate)--投资或贷款的利率或贴现率。 类型(type)--付款期间内进行支付的间隔,如在月初或月末。 5.信息函数 可以使用信息工作表函数确定存储在单元格中的数据的类型。信息函数包含一组称为IS 的工作表函数,在单元格满足条件时返回TRUE。例如,如果单元格包含一个偶数值,ISEVEN 工作表函数返回TRUE。如果需要确定某个单元格区域中是否存在空白单元格,可以使用COUNTBLANK 工作表函数对单元格区域中的空白单元格进行计数,或者使用ISBLANK 工作表函数确定区域中的某个单元格是否为空。 6.逻辑函数 使用逻辑函数可以进行真假值判断,或者进行复合检验。例如,可以使用IF 函数确定条件为真还是假,并由此返回不同的数值。

常用excel函数公式大全

常用的excel函数公式大全 一、数字处理 1、取绝对值 =ABS(数字) 2、取整 =INT(数字) 3、四舍五入 =ROUND(数字,小数位数) 二、判断公式 1、把公式产生的错误值显示为空 公式:C2 =IFERROR(A2/B2,"") 说明:如果是错误值则显示为空,否则正常显示。

2、IF多条件判断返回值 公式:C2 =IF(AND(A2<500,B2="未到期"),"补款","") 说明:两个条件同时成立用AND,任一个成立用OR函数。 三、统计公式 1、统计两个表格重复的内容 公式:B2 =COUNTIF(Sheet15!A:A,A2) 说明:如果返回值大于0说明在另一个表中存在,0则不存在。

2、统计不重复的总人数 公式:C2 =SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8)) 说明:用COUNTIF统计出每人的出现次数,用1除的方式把出现次数变成分母,然后相加。 四、求和公式

1、隔列求和 公式:H3 =SUMIF($A$2:$G$2,H$2,A3:G3) 或 =SUMPRODUCT((MOD(COLUMN(B3:G3),2)=0)*B3:G3)说明:如果标题行没有规则用第2个公式 2、单条件求和 公式:F2 =SUMIF(A:A,E2,C:C) 说明:SUMIF函数的基本用法

3、单条件模糊求和 公式:详见下图 说明:如果需要进行模糊求和,就需要掌握通配符的使用,其中星号是表示任意多个字符,如"*A*"就表示a前和后有任意多个字符,即包含A。

4、多条件模糊求和 公式:C11 =SUMIFS(C2:C7,A2:A7,A11&"*",B2:B7,B11) 说明:在sumifs中可以使用通配符* 5、多表相同位置求和 公式:b2 =SUM(Sheet1:Sheet19!B2) 说明:在表中间删除或添加表后,公式结果会自动更新。 6、按日期和产品求和

EXCEL常用函数大全

EXCEL常用函数大全(做表不求人!) 2013-12-03 00:00 我们在使用Excel制作表格整理数据的时候,常常要用到它的函数功能来自动统计处理表格中的数据。这里整理了Excel中使用频率最高的函数的功能、使用方法,以及这些函数在实际应用中的实例剖析,并配有详细的介绍。 1、ABS函数 函数名称:ABS 主要功能:求出相应数字的绝对值。 使用格式:ABS(number) 参数说明:number代表需要求绝对值的数值或引用的单元格。 应用举例:如果在B2单元格中输入公式:=ABS(A2),则在A2单元格中无论输入正数(如100)还是负数(如-100),B2中均显示出正数(如100)。 特别提醒:如果number参数不是数值,而是一些字符(如A等),则B2中返回错误值“#VALUE!”。

2、AND函数 函数名称:AND 主要功能:返回逻辑值:如果所有参数值均为逻辑“真(TRUE)”,则返回逻辑“真(TRUE)”,反之返回逻辑“假(FALSE)”。 使用格式:AND(logical1,logical2, ...) 参数说明:Logical1,Logical2,Logical3……:表示待测试的条件值或表达式,最多这30个。 应用举例:在C5单元格输入公式:=AND(A5>=60,B5>=60),确认。如果C5中返回TRUE,说明A5和B5中的数值均大于等于60,如果返回FALSE,说明A5和B5中的数值至少有一个小于60。 国美提醒:如果指定的逻辑条件参数中包含非逻辑值时,则函数返回错误值“#VALUE!”或“#NAME”。 3、AVERAGE函数 函数名称:AVERAGE 主要功能:求出所有参数的算术平均值。

数据库常用函数

数据库常用函数

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份和还原 备份:exp dsscount/sa@dsscount owner=dsscount file=C:\dsscount_data_backup\dsscount.dmp log=C:\dsscount_data_backup\outputa.log 还原:imp dsscount/sa@dsscount file=C:\dsscount_data_backup\dsscount.dmp full=y ignore=y log=C:\dsscount_data_backup\dsscount.log statistics=none 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) CREATE TABLE ceshi(id INT not null identity(1,1) PRIMARY KEY,NAME VARCHAR(50),age INT) id为主键,不为空,自增长 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围

数据库中一些常用的名词解释

◆DB:数据库(Database),DB是统一管理的相关数据的集合。DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。 ◆DBMS:数据库管理系统(Database Management System),DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB 的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型、面向对象型DBMS。 ◆DBS:数据库系统(Database System),DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。 ◆1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系,反之亦然,好么实体集E1对E2的联系称为“一对一联系”,记为“1:1”。 ◆1:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,而E2中每个实体至多和E1中的一个实体有联系,那么E1对E2的联系是“一对多联系”,记为“1:N”。 ◆M:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么E1对E2的联系是“多对多联系”,记为“M:N”。 ◆数据模型:表示实体类型及实体类型间联系的模型称为“数据模型”。它可分为两种类型:概念数据模型和结构数据模型。 ◆概念数据模型:它是独门于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构。 ◆结构数据模型:它是直接面向数据库的逻辑结构,是现实世界的第二层抽象。这类模型涉及到计算机系统和数据库管理系统,所以称为“结构数据模型”。结构数据模型应包含:数据结构、数据操作、数据完整性约束三部分。它主要有:层次、网状、关系三种模型。

EXCEL常用函数公式大全与举例

EXCEL常用函数公式大全及举例 一、相关概念 (一)函数语法 由函数名+括号+参数组成 例:求和函数:SUM(A1,B2,…) 。参数与参数之间用逗号“,”隔开(二)运算符 1. 公式运算符:加(+)、减(-)、乘(*)、除(/)、百分号(%)、乘幂(^) 2. 比较运算符:大与(>)、小于(<)、等于(=)、小于等于(<=)、大于等于(>=)、不等于(<>) 3. 引用运算符:区域运算符(:)、联合运算符(,) (三)单元格的相对引用与绝对引用 例: A1 $A1 锁定第A列 A$1 锁定第1行 $A$1 锁定第A列与第1行 二、常用函数 (一)数学函数 1. 求和 =SUM(数值1,数值2,……) 2. 条件求和 =SUMIF(查找的范围,条件(即对象),要求和的范围) 例:(1)=SUMIF(A1:A4,”>=200”,B1:B4) 函数意思:对第A1栏至A4栏中,大于等于200的数值对应的第B1列至B4列中数值求和 (2)=SUMIF(A1:A4,”<300”,C1:C4)

函数意思:对第A1栏至A4栏中,小于300的数值对应的第C1栏至C4栏中数值求和 3. 求个数 =COUNT(数值1,数值2,……) 例:(1) =COUNT(A1:A4) 函数意思:第A1栏至A4栏求个数(2) =COUNT(A1:C4) 函数意思:第A1栏至C4栏求个数 4. 条件求个数 =COUNTIF(范围,条件) 例:(1) =COUNTIF(A1:A4,”<>200”) 函数意思:第A1栏至A4栏中不等于200的栏求个数 (2)=COUNTIF(A1:C4,”>=1000”) 函数意思:第A1栏至C4栏中大于等1000的栏求个数 5. 求算术平均数 =AVERAGE(数值1,数值2,……) 例:(1) =AVERAGE(A1,B2) (2) =AVERAGE(A1:A4) 6. 四舍五入函数 =ROUND(数值,保留的小数位数) 7. 排位函数 =RANK(数值,范围,序别) 1-升序 0-降序 例:(1) =RANK(A1,A1:A4,1) 函数意思:第A1栏在A1栏至A4栏中按升序排序,返回排名值。 (2) =RANK(A1,A1:A4,0) 函数意思:第A1栏在A1栏至A4栏中按降序排序,返回排名值。 8. 乘积函数 =PRODUCT(数值1,数值2,……) 9. 取绝对值 =ABS(数字) 10. 取整 =INT(数字) (二)逻辑函数

常用T-SQL数据库函数

常用T-SQL数据库函数 1. 聚合函数 (1) A VG 函数功能返回组中值的平均值。空值将被忽略 语法A VG ( [ ALL | DISTINCT ] expression ) (2) MAX 函数功能返回表达式的最大值 语法MAX ( [ ALL | DISTINCT ] expression ) (3) MIN 函数功能返回表达式的最小值 语法MIN ( [ ALL | DISTINCT ] expression ) (4) SUM 函数功能返回表达式中所有值的和,或只返回DISTINCT 值。SUM 只能用于数字列。空值将被忽略 语法SUM ( [ ALL | DISTINCT ] expression ) (5) COUNT 函数功能返回组中项目的数量 语法COUNT ( { [ ALL | DISTINCT ] expression ] | * } ) 2. 时间和日期函数 (1) DATEADD 函数功能在向指定日期加上一段时间的基础上,返回新的datetime值 语法DATEADD ( datepart , number, date ) 样例SELECT DATEADD(day, 21, pubdate) AS timeframe FROM titles (2) DATEPART 函数功能返回代表指定日期的指定日期部分的整数 语法DATEPART ( datepart , date )

样例SELECT DATEPART(month, GETDATE()) AS …Month Number? (3) DAY 函数功能返回代表指定日期的天的日期部分的整数 语法DAY ( date ) (4) GETDATE 函数功能按datetime 值的Microso ft? SQL Server? 标准内部格式返回当前系统日期和时间 语法GETDATE ( ) (5) GETUTCDATE 函数功能返回表示当前UTC 时间(世界时间坐标或格林尼治标准时间)的datetime 值。当前的UTC 时间得自当前的本地时间和运行SQL Server 的计算机操作系统中的时区设置 语法GETUTCDATE() (6) MONTH 函数功能返回代表指定日期月份的整数 语法MONTH ( date ) 样例SELECT “Month Number” = MONTH(?03/12/1998′) (7) YEAR 函数功能返回表示指定日期中的年份的整数 语法YEAR ( date ) 3. 数学函数 (1) ABS 函数功能返回给定数字表达式的绝对值 语法ABS ( numeric_expression ) (2) RAND 函数功能返回0 到1 之间的随机float 值

(完整版)excel基本常用函数公式大全

1、查找重复内容公式:=IF(COUNTIF(A:A,A2)>1,"重复","")。 2、用出生年月来计算年龄公式: =TRUNC((DAYS360(H6,"2009/8/30",FALSE))/360,0)。 3、从输入的18位身份证号的出生年月计算公式: =CONCATENATE(MID(E2,7,4),"/",MID(E2,11,2),"/",MID(E2,13,2))。 4、从输入的身份证号码内让系统自动提取性别,可以输入以下公式: =IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)=1,"男","女"),IF(MOD(MID(C2,17,1),2)=1,"男","女"))公式内的“C2”代表的是输入身份证号码的单元格。 1、求和:=SUM(K2:K56) ——对K2到K56这一区域进行求和; 2、平均数:=AVERAGE(K2:K56) ——对K2 K56这一区域求平均数; 3、排名:=RANK(K2,K$2:K$56) ——对55名学生的成绩进行排名; 4、等级:=IF(K2>=85,"优",IF(K2>=74,"良",IF(K2>=60,"及格","不及格"))) 5、学期总评:=K2*0.3+M2*0.3+N2*0.4 ——假设K列、M列和N列分别存放着学生的“平时总评”、“期中”、“期末”三项成绩; 6、最高分:=MAX(K2:K56) ——求K2到K56区域(55名学生)的最高分;

7、最低分:=MIN(K2:K56) ——求K2到K56区域(55名学生)的最低分; 8、分数段人数统计: (1)=COUNTIF(K2:K56,"100") ——求K2到K56区域100分的人数;假设把结果存放于K57单元格; (2)=COUNTIF(K2:K56,">=95")-K57 ——求K2到K56区域95~99.5分的人数;假设把结果存放于K58单元格; (3)=COUNTIF(K2:K56,">=90")-SUM(K57:K58) ——求K2到K56区域90~94.5分的人数;假设把结果存放于K59单元格; (4)=COUNTIF(K2:K56,">=85")-SUM(K57:K59) ——求K2到K56区域85~89.5分的人数;假设把结果存放于K60单元格; (5)=COUNTIF(K2:K56,">=70")-SUM(K57:K60) ——求K2到K56区域70~84.5分的人数;假设把结果存放于K61单元格; (6)=COUNTIF(K2:K56,">=60")-SUM(K57:K61) ——求K2到K56区域60~69.5分的人数;假设把结果存放于K62单元格; (7)=COUNTIF(K2:K56,"<60") ——求K2到K56区域60分以下的人数;假设把结果存放于K63单元格;

(完整word版)excel函数的说明及其详细的解释

excel 函数的说明及其详细的解释 数据库和清单管理函数 AVERAGE返回选定数据库项的平均值 DCOUNT计算数据库中包含数字的单元格的个数 DCOUNTA计算数据库中非空单元格的个数 DGET从数据库中提取满足指定条件的单个记录 DMAX返回选定数据库项中的最大值 DMIN返回选定数据库项中的最小值 DPRODUCT乘以特定字段(此字段中的记录为数据库中满足指定条件的记录)中的值 DSTDEV根据数据库中选定项的示例估算标准偏差 DSTDEVP根据数据库中选定项的样本总体计算标准偏差 DSUM对数据库中满足条件的记录的字段列中的数字求和 DVAR根据数据库中选定项的示例估算方差 DVARP根据数据库中选定项的样本总体计算方差 GETPIVOTDATA 返回存储在数据透视表中的数据

日期和时间函数 DATE返回特定时间的系列数 DATEDIF计算两个日期之间的年、月、日数 DATEVALUE 将文本格式的日期转换为系列数 DAY 将系列数转换为月份中的日 DAYS360按每年360 天计算两个日期之间的天数 EDATE返回在开始日期之前或之后指定月数的某个日期的系列数 EOMONTH返回指定月份数之前或之后某月的最后一天的系列数 HOUR将系列数转换为小时 MINUTE将系列数转换为分钟 MONTH将系列数转换为月 NETWORKDAYS 返回两个日期之间的完整工作日数 NOW 返回当前日期和时间的系列数 SECOND将系列数转换为秒 TIME返回特定时间的系列数 TIMEVALUE将文本格式的时间转换为系列数 TODAY返回当天日期的系列数 WEEKDAY将系列数转换为星期 WORKDAY返回指定工作日数之前或之后某日期的系列数YEAR 将系列数转换为年

几种数据库常用函数比较

一、DB2、ACCESS、ORACLE的常用函数比较:

ORACLE中的应为:SUBSTR(字符串1,LENGTH(字符串1) -位数1 + 1,位数1) 或:SUBSTR(字符串1,-位数1,位数1) 二、SQL语句的差异: 1、Select:(三种数据库基本相同) 基本相同语句: Select * from 表名where 条件 特殊语句:(三种数据库都可执行) Select * from (Select 字段1,字段2,字段3 from YH_User) 2、Insert: (三种数据库基本相同) 基本相同语句: Insert into 表名(字段列表)V alues(表达式1,…表达式n) | select 字段列表from 表名Where 条件

DB2:存在特殊语句: INSERT INTO ND2000.XS_PARAM(PARAM_ID,SHOWIF,PARAM_NAME,PARAM_V ALUE,COMMENT1) (V ALUES(5,0,'销帐最大零头','1','单位为元。'),(6,0,'滞纳月','1','本参数和滞纳日期同时使用。说明见滞纳日期。'),(7,0,'滞纳日','1','电费计算后的第N个月的M号时,如果用户电费仍未缴清,则开始计算滞纳金。其中N为滞纳期限,M为滞纳日期。')); 3、Delete: (三种数据库基本相同) 基本相同语句: Delete from 表名Where 条件 4、Update: 基本相同语句: update 表名set 字段1=表达式,字段2=表达式.. 字段n=表达式where 条件 DB2、Oracle类似,Access不一样 Access: Update bb_temp,bb_param set bb_temp.c1=bb_param.c1, bb_temp.c2=bb_param.c2 where bb_temp.c0=bb_param.c0; DB2: Update bb_temp set (c1,c2)= (select C1,c2 from bb_param where C0=bb_temp.c0) Oracle: update xs_param1 set (param_name,param_value)= (select param_name,param_value from xs_param where xs_param.param_id=xs_param1.param_id ) 特别说明:

计算机二级access数据库常用函数

一、算术函数 算术函数完成数学计算功能。主要包括以下算术函数: 1.绝对值函数:Abs(<表达式>) 返回数值表达式的绝对值。如Abs(-3)=3 2.向下取整函数:Int(<数值表达式>) 返回数值表达式的向下取整数的结果,参数为负值时返回小于等于参数值的第一负数。 3.取整函数:Fix(<数值表达式>) 返回数位表达式的整数部分,参数为负值时返回大于等于参数值的第一负数。 Int和Fix函数当参数为正值时,结果相同;当参数为负时结果可能不同。Int返回小于等于参数值的第一个负数,而Fix返回大于等于参数值的第一负数。 例如:Int(3.25)=3,Fix(3.25)=3但Int(-3.25)=-4,Fix(-3.25)=-3 4.四舍五入函数:Round(<数值表达式>[,<表达式>]) 按照指定的小数位数进入四舍五入运算的结果。[<表达式>]是进入四舍五入运算小数点右边应保留的位数。 例如:Round(3.255,1)=3.3;Round(3.255,2);Round(3.754,1)=3.28;Round(3.754,2)=3.75;Round(3.754,0)=4 5.开平方函数:Sqr(<数值表达式>)

计算数值表达式的平方根。例如:Sqr(9)=3 6.产生随机数函数:Rnd(<数值表达式>) 产生一个0-1之间的随机数,为单精度类型。 数值表达式参数为随机数种子,决定产生随机数的方式。如果数值表达式值小于0,每次产生相同的随机数;如果数值表达式值大于0。每次产生新的随机数;如果数值表达式值等于0,产生最近生成的随机数,且生成的随机数序列相同;如果省略数值表达式参数,则歌认参数位大于0。 实际操作时,先要使用无参数的Randomize语句初始化随机数生成器。以产生不同的随机数序列。 例如:Int(100*Rnd)’产生[0,99]的随机整数 Int(101*Rnd)’产生[0,100]的随机整数 Int(100,Rnd+l)’产生[i,l00]的随机整数 Int(100+200*Rnd)’产生[100,299]的随机整数 Int(100+201*Rnd)’产生[100,300]的随机整数 二、字符串函数 1.字符串检索函数:InStr([Start,][,Compare]) 检索子字符申Str2在字符串Strl中最早出现的位置,返回一整型数。Start为可选参数,为数值式,设置检索的起始位置。如省略,从

Excel常用的函数计算公式大全(一看就会)精编版

计算机等级考试 =公式名称(参数1,参数2,。。。。。) =sum(计算范围) =average(计算范围) =sumifs(求和范围,条件范围1,符合条件1,条件范围2,符合条件2,。。。。。。) =vlookup(翻译对象,到哪里翻译,显示哪一种,精确匹配) =rank(对谁排名,在哪个范围里排名) =max(范围) =min(范围) =index(列范围,数字) =match(查询对象,范围,0) =mid(要截取的对象,从第几个开始,截取几个) =int(数字) =weekday(日期,2) =if(谁符合什么条件,符合条件显示的内容,不符合条件显示的内容) =if(谁符合什么条件,符合条件显示的内容,if(谁符合什么条件,符合条件显示的内容,不符合条件显示的内容)) EXCEL的常用计算公式大全 一、单组数据加减乘除运算: ①单组数据求加和公式:=(A1+B1) 举例:单元格A1:B1区域依次输入了数据10和5,计算:在C1中输入=A1+B1 后点击键盘“Enter(确定)”键后,该单元格就自动显示10与5的和15。 ②单组数据求减差公式:=(A1-B1) 举例:在C1中输入=A1-B1 即求10与5的差值5,电脑操作方法同上; ③单组数据求乘法公式:=(A1*B1) 举例:在C1中输入=A1*B1 即求10与5的积值50,电脑操作方法同上; ④单组数据求乘法公式:=(A1/B1) 举例:在C1中输入=A1/B1 即求10与5的商值2,电脑操作方法同上; ⑤其它应用: 在D1中输入=A1^3 即求5的立方(三次方); 在E1中输入=B1^(1/3)即求10的立方根 小结:在单元格输入的含等号的运算式,Excel 中称之为公式,都是数学里面的基本 运算,只不过在计算机上有的运算符号发生了改变——“×”与“* ”同、“÷”与 “/ ”同、“^”与“乘方”相同,开方作为乘方的逆运算,把乘方中和指数使用成分数 就成了数的开方运算。这些符号是按住电脑键盘“Shift ”键同时按住键盘第二排 相对应的数字符号即可显示。如果同一列的其它单元格都需利用刚才的公式计算,只 需要先用鼠标左键点击一下刚才已做好公式的单元格,将鼠标移至该单元格的右下 角,带出现十字符号提示时,开始按住鼠标左键不动一直沿着该单元格依次往下拉到 你需要的某行同一列的单元格下即可,即可完成公司自动复制,自动计算。

相关文档
最新文档