当前位置:文档之家› Vertica的分析函数介绍

Vertica的分析函数介绍

Vertica的分析函数介绍
Vertica的分析函数介绍

Vertica的分析函数介绍

分析函数作为SQL言语的一种扩展已经被纳入了美国国家标准化组织SQL委员会的SQL规范说明书中。所以不同db厂商支持的分析函数其语法结构和函数名称也基本一致。节约篇幅,这里仅介绍vertica的分析函数语法和函数作用,函数应用相关例子略。

1. Analytic function syntax

ANALYTIC_FUNCTION( argument-1, ..., argument-n )

OVER( [ window_partition_clause ]

[ window_order_clause ]

[ window_frame_clause )

以下是函数用途简短描述清单:

2. argument-1, ..., argument-n

分析函数的参数

3. window_partition_clause

根据划分表达式设置的规则,PARTITION BY(按...划分)将一个结果逻辑分成N个分组划分表达式。在此"划分"和"分组"用作同义词。分析函数独立应用于各个分组,并在应用时重置。

Syntax

OVER ( PARTITION BY expression [ , ... ] )

4. window_order_clause

ORDER BY(按...排序)语句规定了每个分组(划分)的数据如何排序。这必然影响分析函数的结果。

Syntax

OVER ( ORDER BY expression [ { ASC | DESC } ]

... [ NULLS { FIRST | LAST | AUTO } ] [, expression ...] )

5. window_frame_clause

窗口生成语句用以定义滑动或固定数据窗口,分析函数在分组内进行分析。该语句能够对分组中任意定义的滑动或固定窗口进行计算。

Syntax

{ ROWS | RANGE }

{

{

BETWEEN

{ UNBOUNDED PRECEDING

| CURRENT ROW

| constant-value { PRECEDING | FOLLOWING }

}

AND

{ UNBOUNDED FOLLOWING

| CURRENT ROW

| constant-value { PRECEDING | FOLLOWING }

}

}

|

{

{ UNBOUNDED PRECEDING

| CURRENT ROW

| constant-value PRECEDING

}

}

}

CC++中对日期和时间操作所用到的数据结构和函数

本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。 关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元) 1.概念 在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方法. 通过学习许多C/C++库,你可以有很多操作、使用时间的方法。但在这之前你需要了解一些“时间”和“日期”的概念,主要有以下几个: Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。美国是UTC-5。 Calendar Time:日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,所以可以说日历时间是“相对时间”,但是无论你在哪一个时区,在同一时刻对同一个标准时间点来说,日历时间都是一样的。 epoch:时间点。时间点在标准C/C++中是一个整数,它用此时的时间和标准时间点相差的秒数(即日历时间)来表示。 clock tick:时钟计时单元(而不把它叫做时钟滴答次数),一个时钟计时单元的时间长短是由CPU控制的。一个clock tick不是CPU的一个时钟周期,而是C/C++的一个基本计时单位。 我们可以使用ANSI标准库中的time.h头文件。这个头文件中定义的时间和日期所使用的方法,无论是在结构定义,还是命名,都具有明显的C语言风格。下面,我将说明在C/C++中怎样使用日期的时间功能。 2.计时 C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下: clock_t clock( void ); 这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock)。其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对它的定义: #ifndef _CLOCK_T_DEFINED

Oracle中分析函数用法小结

Oracle中分析函数用法小结 一.分析函数适用场景: ○1需要对同样的数据进行不同级别的聚合操作 ○2需要在表内将多条数据和同一条数据进行多次的比较 ○3需要在排序完的结果集上进行额外的过滤操作 二.分析函数语法: FUNCTION_NAME(,...) OVER () 例: sum(sal) over (partition by deptno order by ename) new_alias sum就是函数名 (sal)是分析函数的参数,每个函数有0~3个参数,参数可以是表达式,例如:sum(sal+comm) over 是一个关键字,用于标识分析函数,否则查询分析器不能区别sum()聚集函数和sum()分析函数 partition by deptno 是可选的分区子句,如果不存在任何分区子句,则全部的结果集可看作一个单一的大区 order by ename 是可选的order by 子句,有些函数需要它,有些则不需要.依靠已排序数据的那些函数,如:用于访问结果集中前一行和后一行的LAG和LEAD,必须使用,其它函数,如AVG,则不需要.在使用了任何排序的开窗函数时,该子句是强制性的,它指定了在计算分析函数时一组内的数据是如何排序的. 1)FUNCTION子句 ORACLE提供了26个分析函数,按功能分5类 分析函数分类 等级(ranking)函数:用于寻找前N种查询 开窗(windowing)函数:用于计算不同的累计,如SUM,COUNT,AVG,MIN,MAX等,作用于数据的一个窗口上 例: sum(t.sal) over (order by t.deptno,t.ename) running_total, sum(t.sal) over (partition by t.deptno order by t.ename) department_total 制表(reporting)函数:与开窗函数同名,作用于一个分区或一组上的所有列 例: sum(t.sal) over () running_total2, sum(t.sal) over (partition by t.deptno) department_total2 制表函数与开窗函数的关键不同之处在于OVER语句上缺少一个ORDER BY子句! LAG,LEAD函数:这类函数允许在结果集中向前或向后检索值,为了避免数据的自连接,它们是非常有用的. VAR_POP,VAR_SAMP,STDEV_POPE及线性的衰减函数:计算任何未排序分区的统计值 2)PARTITION子句 按照表达式分区(就是分组),如果省略了分区子句,则全部的结果集被看作是一个单一的组 3)ORDER BY子句

EXCEl函数(二)日期与时间函数

日期与时间函数 DATE 返回代表特定日期的序列号。如果在键入函数前,单元格格式为“常规”,则结果将设为日期格式。 语法 DATE(year,month,day) Year 参数year 可以为一到四位数字。 ?如果year 位于0(零)到1899(包含)之间,则WPS表格会将该值加上1900,再计算年份。例如:DATE(108,1,2)将返回2008 年1 月 2 日(1900+108)。 ?如果year 位于1900 到9999(包含)之间,则WPS表格将使用该数值作为年份。 例如:DATE(2008,1,2)将返回2008 年 1 月 2 日。 ?如果year 小于0 或大于等于10000,则WPS表格将返回错误值#NUM!。 Month 代表每年中月份的数字。如果所键入的月份大于12,将从指定年份的一月份开始往上加算。例如:DATE(2008,14,2)返回代表2009 年2 月 2 日的序列号。 Day 代表在该月份中第几天的数字。如果day 大于该月份的最大天数,则将从指定月份的第一天开始往上累加。例如,DATE(2008,1,35)返回代表2008 年 2 月4 日的序列号。 示例 如果您将示例复制到空白工作表中,可能会更易于理解该示例。 DATEVALUE 返回date_text 所表示的日期的序列号。函数DATEVALUE 的主要功能是将以文本表示的日期转换成一个序列号。

语法 DATEVALUE(date_text) Date_text 代表以WPS表格日期格式表示的日期的文本。例如,"2008-1-30" 或"30-Jan-08" 就是带引号的文本,它用于代表日期。在使用WPS表格时,date_text 必须表示1900 年 1 月1 日到9999 年1 2 月31 日之间的一个日期。如果date_text 超出范围,则函数 DATEVALUE 返回错误值#VALUE!。 如果省略date_text 中的年份部分,则函数DATEVALUE 使用计算机系统内部时钟的当前年份。date_text 中的时间信息将被忽略。 说明 ?WPS表格可将日期存储为可用于计算的序列号。默认情况下,1900 年1 月1 日的序列号是1,而2008 年 1 月 1 日的序列号是39448,这是因为它距1900 年 1 月 1 日有39448 天。 ?大部分函数都会自动将日期值转换成序列号。 示例 如果您将示例复制到空白工作表中,可能会更易于理解该示例。 注意若要查看序列号所代表的日期,请选择该日期所在的单元格,单击“格式”菜单上的“单元格”,再单击“数字”选项卡,然后单击“分类”框中的“日期”。 DATEDIF DATEDIF函数,主要用于计算两个日期之间的天数、月数或年数。其返回的值是两个日期之间的年\月\日间隔数。

Excel常用函数及使用方法

excel常用函数及使用方法 一、数字处理 (一)取绝对值:=ABS(数字) (二)数字取整:=INT(数字) (三)数字四舍五入:=ROUND(数字,小数位数) 二、判断公式 (一)把公式返回的错误值显示为空: 1、公式:C2=IFERROR(A2/B2,"") 2、说明:如果是错误值则显示为空,否则正常显示。 (二)IF的多条件判断 1、公式:C2=IF(AND(A2<500,B2="未到期"),"补款","") 2、说明:两个条件同时成立用AND,任一个成立用OR函数。 三、统计公式 (一)统计两表重复 1、公式:B2=COUNTIF(Sheet15!A:A,A2) 2、说明:如果返回值大于0说明在另一个表中存在,0则不存在。 (二)统计年龄在30~40之间的员工个数 公式=FREQUENCY(D2:D8,{40,29} (三)统计不重复的总人数 1、公式:C2=SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8)) 2、说明:用COUNTIF统计出每人的出现次数,用1除的方式把出现次数变成分母,然后相加。

(四)按多条件统计平均值 =AVERAGEIFS(D:D,B:B,"财务",C:C,"大专") (五)中国式排名公式 =SUMPRODUCT(($D$4:$D$9>=D4)*(1/COUNTIF(D$4:D$9,D$4:D$9))) 四、求和公式 (一)隔列求和 1、公式:H3=SUMIF($A$2:$G$2,H$2,A3:G3) 或=SUMPRODUCT((MOD(COLUMN(B3:G3),2)=0)*B3:G3) 2、说明:如果标题行没有规则用第2个公式 (二)单条件求和 1、公式:F2=SUMIF(A:A,E2,C:C) 2、说明:SUMIF函数的基本用法 (三)单条件模糊求和 说明:如果需要进行模糊求和,就需要掌握通配符的使用,其中星号是表示任意多个字符,如"*A*"就表示a前和后有任意多个字符,即包含A。 (四)多条求模糊求和 1、公式:=SUMIFS(C2:C7,A2:A7,A11&"*",B2:B7,B11) 2、说明:在sumifs中可以使用通配符* (五)多表相同位置求和 1、公式:=SUM(Sheet1:Sheet19!B2) 2、说明:在表中间删除或添加表后,公式结果会自动更新。

mysql 中 时间和日期函数

mysql 中时间和日期函数 一、MySQL 获得当前日期时间函数 1.1获得当前日期+时间(date + time)函数:now() mysql>select now(); +---------------------+ | now() | +---------------------+ |2008-08-0822:20:46| +---------------------+ 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp() ,current_timestamp ,localtime() ,localtime ,localtimestamp -- (v4.0.6) ,localtimestamp() -- (v4.0.6) 这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。 1.2获得当前日期+时间(date + time)函数:sysdate() sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。看下面的例子就明白了: mysql>select now(), sleep(3), now(); +---------------------+----------+---------------------+ | now() | sleep(3) | now() | +---------------------+----------+---------------------+ |2008-08-0822:28:21|0|2008-08-0822:28:21| +---------------------+----------+---------------------+ mysql>select sysdate(), sleep(3), sysdate(); +---------------------+----------+---------------------+

Oracle 分析函数(Analytic Functions) 说明

Oracle 分析函数(Analytic Functions)说明一. Analytic Functions 说明 分析函数是oracle 8中引入的一个概念,为我们分析数据提供了一种简单高效的处理方式. 官方对分析函数的说明如下: Analytic functions compute an aggregate value based on a group of rows. They differ from aggregate functions in that they return multiple rows for each group. The groupof rows is called a window and is defined bythe analytic_clause. For each row, a sliding window of rows is defined.The window determines the range of rows used to perform the calculations forthe current row. Window sizes can be based on either a physical number of rowsor a logical interval such as time. Analytic functions are the last set of operations performed in a query except for thefinal ORDER BY clause. All joins and all WHERE, GROUP BY,and HAVING clauses are completed before the analytic functions areprocessed. Therefore, analytic functions can appear only in the select listor ORDER BY clause. Analytic functions are commonly used to compute cumulative, moving, centered, andreporting aggregates. From:Analytic Functions https://www.doczj.com/doc/735440472.html,/cd/E11882_01/server.112/e26088/functions004.htm#S QLRF06174 分析函数是对一组查询结果进行运算,然后获得结果,从这个意义上,分析函数非常类似于聚合函数(Aggregate Function)。区别是在调用分析函数时,后面加上了开窗子句over()。 聚合函数是对一个查询结果中的每个分组进行运算,并且对每个分组产生一个运算结果。分析函数也是对一个查询结果中的每个分组进行运算,但每个分组对应的结果可以有多个。产生这个不同的原因是分析函数中有一个窗口的概念,一个窗口对应于一个分组中的若干行,分析函数每次对一个窗口进行运算。运算时窗口在查询结果或分组中从顶到底移动,对每一行数据生成一个窗口。 Oracle 聚合函数(Aggregate Functions)说明 https://www.doczj.com/doc/735440472.html,/tianlesoftware/article/details/7057249

excel使用日期和时间函数公式

excel使用日期和时间函数公式 excel使用日期和时间函数公式excel如何显示当前日期函数公式 显示当前年份函数:【=year(now())】 显示当前月份函数:【=month(now())】 显示当前日期函数:【=day((now()))】 显示当前星期函数:【=text(now(),"aaaa")】 显示当前准确时间:【=text(now(),"hh:mm:ss")】 显示当前年月日:【=today()】 显示当前年月日和时间:【=now()】 使用方法:直接在某单元格输入以上函数公式即可获得结果。 excel如何通过日期判断星期几 通过日期显示星期几:【=weekday(a2,2)】 通过日期显示中文带星期:【=text(a2,"aaaa")】 通过日期计算中文星期:【=text(a4,"aaa")】 通过日期计算英文星期简写:【=text(a5,"ddd")】 通过日期计算英文星期:【=text(a5,"dddd")】 使用方法:指定输入日期的单元格,输入以上函数公式即可获取星期。 excel如何求月份天数函数 求某日期的月份天数:

【=day(date(year(a2),month(a2)+1,0))】使用方法:需要指定包含日期的单元格。 直接求当前月份天数:【=day(eomonth(now(),0))】使用方法:直接在某单元格输入以上公式即可获取天数。 求当前月份天数减去周六和周日:【=sumproduct(--(mod(row(indirect(date(year(now()),month (now()),1)&":"&date(year(now()),month(now())+1,0))),7)>1 ))】使用方法:直接在某单元格输入以上公式即可获取天数。 excel快捷键快速获取日期时间 当然,在有些情况下,我们可以直接通过excel快捷键来获取当前的日期和时间。 获取当前年月日快捷键:【ctrl+;】 获取当前时间快捷键:【ctrl+shift+;】 获取年月日和时间:先在单元格使用【ctrl+;】,然后空格在使用快捷键【ctrl+shift+;】

excel常用函数公式介绍

excel常用函数公式介绍 excel常用函数公式介绍1:MODE函数应用 1MODE函数是比较简单也是使用最为普遍的函数,它是众数值,可以求出在异地区域或者范围内出现频率最多的某个数值。 2例如求整个班级的普遍身高,这时候我们就可以运用到了MODE 函数了 3先打开插入函数的选项,之后可以直接搜索MODE函数,找到求众数的函数公式 4之后打开MODE函数后就会出现一个函数的窗口了,我们将所要求的范围输入进Number1选项里面,或者是直接圈选区域 5之后只要按确定就可以得出普遍身高这一个众数值了 excel常用函数公式介绍2:IF函数应用 1IF函数常用于对一些数据的进行划分比较,例如对一个班级身高进行评测 2这里假设我们要对身高的标准要求是在170,对于170以及170之上的在备注标明为合格,其他的一律为不合格。这时候我们就要用到IF函数这样可以快捷标注好备注内容。先将光标点击在第一个备注栏下方 3之后还是一样打开函数参数,在里面直接搜索IF函数后打开 4打开IF函数后,我们先将条件填写在第一个填写栏中, D3>=170,之后在下面的当条件满足时为合格,不满足是则为不合格 5接着点击确定就可以得到备注了,这里因为身高不到170,所以备注里就是不合格的选项 6接着我们只要将第一栏的函数直接复制到以下所以的选项栏中就可以了

excel常用函数公式介绍3:RANK函数应用 2这里我们就用RANK函数来排列以下一个班级的身高状况 3老规矩先是要将光标放于排名栏下面第一个选项中,之后我们打开函数参数 4找到RANK函数后,我们因为选项的数字在D3单元格所以我们就填写D3就可了,之后在范围栏中选定好,这里要注意的是必须加上$不然之后复制函数后结果会出错 5之后直接点击确定就可以了,这时候就会生成排名了。之后我们还是一样直接复制函数黏贴到下方选项栏就可以了。

ORACLE排序与分析函数

--已知:两种排名方式(分区和不分区):使用和不使用partition --两种计算方式(连续,不连续),对应函数:dense_rank,rank 语法: rank()over(order by排序字段顺序) rank()over(partition by分组字段order by排序字段顺序) 1.顺序:asc|desc名次与业务相关: 示例:找求优秀学员:成绩:降序迟到次数:升序 2.分区字段:根据什么字段进行分区。 问题:分区与分组有什么区别? ·分区只是将原始数据进行名次排列(记录数不变), ·分组是对原始数据进行聚合统计(记录数变少,每组返回一条),注意:聚合。rank()与dense_rank():非连续排名与连续排名(都是简单排名) ·查询原始数据:学号,姓名,科目名,成绩 select*from t_score; S_ID S_NAME SUB_NAME SCORE 1张三语文80.00 2李四数学80.00 1张三数学0.00 2李四语文50.00 3张三丰语文10.00 3张三丰数学 3张三丰体育120.00 4杨过JAVA90.00 5mike c++80.00 3张三丰Oracle0.00 4杨过Oracle77.00 2李四Oracle77.00 ·查询各学生科目为Oracle排名(简单排名) select sc.s_id,sc.s_name,sub_name,sc.score,rank()over(order by score desc)名次from t_score sc where sub_name='Oracle'; S_ID S_NAME SUB_NAME SCORE名次 4杨过Oracle77.001 2李四Oracle77.001 3张三丰Oracle0.003 ·对比:rank()与dense_rank():非连续排名与连续排名(都是简单排名) S_ID S_NAME SUB_NAME SCORE名次

Oracle分析函数sum over介绍

分析函数sum over() 介绍 报送单位:审核人: 类型:业务应用 关键字:分析函数 1、引言 运维中,常常需要通过SQL语句对单行数据进行查询,同时又需要对结果集进行汇总,通常的方法是通过两个SQL语句分别进行查询汇总,这样效率低下。 2、现象描述 本节介绍一种ORACLE提供的全新的函数sum over(),该类函数称为分析函数,这类函数功能强大,可以通过一个SQL语句对数据进行遍历的同时又进行汇总,而且一张表只进行一次扫描,极大地提高SQL的执行效率。 3、处理过程 语法: FUNCTION_NAME(,,...) OVER() NAME:可以是SUM,AVG,MAX,MIN,COUNT等其它,这些函数单独使用称为聚集函数,与OVER子句一起使用使称为分析函数。在当分析函数使用时,SQL语句中不需要使用GROUP BY子句。

执行计划: 下图说明分析函数只对表进行一次扫描 4、举例说明 下面分别举例来说明分析函数的使用,原始数据如下表

示例1:查询单行数据同时对所有数据工资进行汇总求和 示例2:查询所有数据,同时对第各部门工资进行汇总,汇总范围取值为第一行所在部门至当前部门所有数据。

示例3:查询所有数据,并且每一行汇总值按ENAME排序后取第一行至当前行ENAME所在行。 示例4:查询所有数据,并且每一行汇总值按EMPNO排序后取第一行至当前行EMPNO所在行

示例5:查询所有数据,同时每行对各部门分别进行按EMPNO排序后从各组第一行至当前行汇总求和。 示例6:查询所有数据,同时每行对从当前上两行数据范围的工资进行汇总求和。 示例7:查询所有数据,同时每行对从当前向前一行数据向后两行数据范围的工资进行汇总求和。

Excel常用函数功能列表

Excel常用函数功能、用法及实例剖析 我们在使用Excel制作表格整理数据的时候,常常要用到它的函数功能来自动统计处理表格中的数据。本专题 整理了Excel中使用频率最高的函数的功能、使用方法,以及这些函数在实际应用中的实例剖析,并配有详细的介 绍和图示,同时提供.xls文件供大家下载参考。 Excel常用函数实例剖析 实例功能原文件下载 .xls文件下载 ·奖金计算表只要将员工的出勤情况记录在表中,该员工的奖金将自动 计算出来,兼有考勤和计算奖金两种功能。自动统计表做 好以后还可以保存成模板,以便以后使用。 ·制作万年历这个万年历可以显示当月的月历,还可以随意查阅任何日 .xls文件下载 期所属的月历,非常方便。如果你愿意,还可以让它在特 殊的日子里显示不同的提醒文字。 .xls文件下载 ·自动评分计算表参加比赛的选手为20人,评委9人,去掉1个最高分和 1个最低分后,求出平均分,然后根据平均分的高低排定 选手的名次。 .xls文件下载 ·自动统计学生成绩自动统计最高分、最低分、总分、平均分、名次等数据信 息,还可以根据自定条件以不同的颜色显示分数。自动统 计表做好以后还可以保存成模板,以便以后使用。 ·各分数段学生数统计统计各学科相应分数段或各等级的学生人数。.xls文件下载 .xls文件下载 ·自动生成员工简历表自动提取“员工基本情况登记表”中的信息,生成并打印员 工简历表。 >>> 更多内容<<< ⊙Excel常用函数功能及用法介绍 .xls 文件下载 函数名功能用途示例 ABS求出参数的绝对值。数据计算 条件判断 AND“与”运算,返回逻辑值,仅当有参数的结果均为逻辑“真(TRUE)” 时返回逻辑“真(TRUE)”,反之返回逻辑“假(FALSE)”。

Excel常用函数公式大全(实用)

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单元格;

Oracle分析函数

Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是 对于每个组返回多行,而聚合函数对于每个组只返回一行。 一、开窗函数 开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化。 例如: 1)over(order by salary)按照salary排序进行累计,order by是个默认的开窗函数 2)over(partition by department_id)按照部门分区 3)over(order by salary range between 50 preceding and 150 following) 每行对应的数据窗口是之前行幅度值不超过50,之后行幅度值不超过150 4)over(order by salary rows between 50 preceding and 150 following) 每行对应的数据窗口是之前50行,之后150行 5)over(order by salary rows between unbounded preceding and unbounded following) 每行对应的数据窗口是从第一行到最后一行,等效: 6) over(order by salary range between unbounded preceding and unbounded following) 其中: 第一行是unbounded preceding 当前行是current row 最后一行是unbounded following 二、分析函数的概念 分析函数是在整个SQL查询结束后(SQL语句中的ORDER BY的执行比较特殊)再进行的操作, 也就是说 SQL语句中的ORDER BY也会影响分析函数的执行结果。 分析函数中包含三个分析子句:分组(Partition By), 排序(Order By), 窗口(Window) 当省略窗口子句时: 1) 如果存在Order By则默认的窗口是unbounded preceding and current row 2) 如果同时省略Order By则默认的窗口是unbounded preceding and unbounded following 如果省略分组,则把全部记录当成一个组 a) 如果SQL语句中的Order By满足分析函数分析时要求的排序,那么SQL语句中的排序将先执行,分析 函数分析时就不必再排序 b) 如果SQL语句中的Order By不满足分析函数分析时要求的排序,那么SQL语句中的排序将最后在分 析函数分析结束后执行排序 三、分析函数 1)AVG

日期和时间-查找和引用函数

日期和时间函数 功能说明 DATE返回特定日期的序列号 DATEVALUE将文本格式的日期转换为序列号 DAY将序列号转换为月份日期 DAYS360以一年360 天为基准计算两个日期间的天数 EDATE返回用于表示开始日期之前或之后月数的日期的序列号EOMONTH返回指定月数之前或之后的月份的最后一天的序列号HOUR将序列号转换为小时 MINUTE将序列号转换为分钟 MONTH将序列号转换为月 NETWORKDAYS返回两个日期间的全部工作日数 NOW返回当前日期和时间的序列号 SECOND将序列号转换为秒 TIME返回特定时间的序列号 TIMEVALUE将文本格式的时间转换为序列号 TODAY返回今天日期的序列号 WEEKDAY将序列号转换为星期日期 WEEKNUM将序列号转换为代表该星期为一年中第几周的数字WORKDAY返回指定的若干个工作日之前或之后的日期的序列号YEAR将序列号转换为年 YEARFRAC返回代表start_date 和end_date 之间的整天天数的年分数

查找和引用函数 全部显示函数说明 ADDRESS以文本形式将引用值返回到工作表的单个单元格 AREAS返回引用中涉及的区域个数 CHOOSE从值的列表中选择值 COLUMN返回引用的列号 COLUMNS返回引用中包含的列数 HLOOKUP查找数组的首行,并返回指定单元格的值 HYPERLINK创建快捷方式或跳转,以打开存储在网络服务器、Intranet 或Internet 上的文档 INDEX使用索引从引用或数组中选择值 INDIRECT返回由文本值指定的引用 LOOKUP在向量或数组中查找值 MATCH在引用或数组中查找值 OFFSET从给定引用中返回引用偏移量 ROW返回引用的行号 ROWS返回引用中的行数 RTD从支持COM 自动化的程序中检索实时数据 TRANSPOSE返回数组的转置 VLOOKUP在数组第一列中查找,然后在行之间移动以返回单元格的值

EXCEL日期与时间函数大全

1.DATE 用途:返回代表特定日期的序列号。 语法:DATE(year,month,day) 参数:year为一到四位,根据使用的日期系统解释该参数。默认情况下,Excel for Windows使用1900日期系统,而Excel for Macintosh使用1904日期系统。Month代表每年中月份的数字。如果所输入的月份大于12,将从指定年份的一月份执行加法运算。Day 代表在该月份中第几天的数字。如果day 大于该月份的最大天数时,将从指定月份的第一天开始往上累加。 注意:Excel按顺序的序列号保存日期,这样就可以对其进行计算。如果工作簿使用的是1900日期系统,则Excel会将1900年1月1日保存为序列号1。同理,会将1998年1月1日保存为序列号35796,因为该日期距离1900年1月1日为35795天。 实例:如果采用1900日期系统(Excel默认),则公式“=DATE(2001,1,1)”返回36892。 2.DATEVaLUE 用途:返回date_text所表示的日期的序列号。该函数的主要用途是将文字表示的日期转换成一个序列号。 语法:DATEVaLUE(date_text) 参数:Date_text是用Excel日期格式表示日期的文本。在使用1900日期系统中,date_text必须是1900年1月1日到9999年12月31日之间的一个日期;而在1904日期系统中,date_text必须是1904年1月1日到9999年12月31日之间的一个日期。如果date_text超出上述范围,则函数DATEVaLUE返回错误值#value!。 如果省略参数date_text中的年代,则函数DATEVaLUE使用电脑系统内部时钟的当前年代,且date_text中的时间信息将被忽略。 实例:公式“=DATEVaLUE("2001/3/5")”返回36955,DATEVaLUE("2-26")返回36948。 3.DAY 用途:返回用序列号(整数1到31)表示的某日期的天数,用整数1 到31 表示。 语法:DAY(serial_number) 参数:Serial_number是要查找的天数日期,它有多种输入方式:带引号的文本串(如"1998/01/30")、序列号(如1900日期系统的35825表示的1998年1月30日),以及其他公式或函数的结果(如DATEVaLUE("1998/1/30"))。 实例:公式“=DAY("2001/1/27")”返回27,=DAY(35825)返回30, =DAY(DATEVaLUE("2001/1/25"))返回25。 4.DAYS360 用途:按照一年360天的算法(每个月30天,一年共计12 个月),返回两日期间相差的天数。 语法:DAYS360(start_date,end_date,method)

Oracle自定义聚合函数-分析函数

自定义聚合函数,分析函数 --from GTA Aaron 最近做一数据项目要用到连乘的功能,而Oracle数据库里没有这样的预定义聚合函数,当然利用数据库已有的函数进行数学运算也可以达到这个功能,如: selectexp(sum(ln(field_name))) from table_name; 不过今天的重点不是讲这个数学公式,而是如何自己创建聚合函数,实现自己想要的功能。很幸运Oracle 允许用户自定义聚合函数,提供了相关接口,LZ研究了下,留贴共享。 首先介绍聚合函数接口: 用户可以通过实现Oracle的Extensibility Framework中的ODCIAggregate interface 来创建自定义聚合函数,而且自定义的聚合函数跟内建的聚合函数用法上没有差别。 通过实现ODCIAggregaterountines来创建自定义的聚合函数。可以通过定义一个对象类型(Object Type),然后在这个类型内部实现ODCIAggregate 接口函数(routines),可以用任何一种Oracle支持的语言来实现这些接口函数,比如C/C++, JAVA, PL/SQL等。在这个Object Type定义之后,相应的接口函数也都在该Object Type Body内部实现之后,就可以通过CREATE FUNCTION语句来创建自定义的聚合函数了。 每个自定义的聚合函数需要实现4个ODCIAggregate 接口函数,这些函数定义了任何一个聚合函数内部需要实现的操作: 1. 自定义聚合函数初始化操作,从这儿开始一个聚合函数。初始化的聚合环境(aggregation context)会以对象实例(object type instance)传回给oracle. static function ODCIAggregateInitialize(varIN OUTagg_type ) return number 2. 自定义聚合函数,最主要的步骤,这个函数定义我们的聚合函数具体做什么操作,self 为 当前聚合函数的指针,用来与前面的计算结果进行关联。这个函数用来遍历需要处理的

SQL日期与时间函数详解

SQL日期与时间函数2009年02月04日星期三上午10:50sql server日期时间函数 Sql Server中的日期与时间函数 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的datetime 值 例如:向日期加上2天 select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000 3. datediff 返回跨两个指定日期的日期和时间边界数。 select datediff(day,'2004-09-01','2004-09-18') --返回:17 4. datepart 返回代表指定日期的指定日期部分的整数。 SELECT DATEPART(month, '2004-10-15') --返回10 5. datename 返回代表指定日期的指定日期部分的字符串 SELECT datename(weekday, '2004-10-15') --返回:星期五 6. day(), month(),year() --可以与datepart对照一下 select 当前日期=convert(varchar(10),getdate(),120) ,当前时间=convert(varchar(8),getdate(),114) select datename(dw,'2004-10-15') select 本年第多少周=datename(week,'2004-10-15') ,今天是周几=datename(weekday,'2004-10-15') 函数参数/功能 GetDate( ) 返回系统目前的日期与时间 DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值date2-date1 DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期 DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值 DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称 参数interval的设定值如下: 值缩写(Sql Server)Access 和ASP 说明 Year Yy yyyy 年1753 ~ 9999 Quarter Qq q 季1 ~ 4 Month Mm m 月1 ~ 12 Day of year Dy y 一年的日数,一年中的第几日1-366 Day Dd d 日,1-31

在脚本中增加日期和时间函数

在脚本中增加日期和时间函数 VBScript有许多函数,使你可以得到各种格式的日期和时间。你已经用过了这些函数中的一个。你可以用函数NOW返回当前的日期和时间: At the tone,the time will bi: <%=NOW%> 你应该注意,返回的日期和时间是你的Web服务器的系统时钟的日期和时间。如果身处纽约的某个人在看你的网页,他看到的日期和时间与她当地的日期和时间也许是不一至的。 函数NOW同时返回日期和时间。如果你只想返回当前日期,你可以使用函数DATE。如果你只想返回当前时间,你可以使用函数TIME。例如: The date is :<%=DATE%> The time is :<%=TIME%> 操作日期 使用函数MONTH(),DAY(),WEEKDAY(),和YEAR(),你可以把一个日期分割成更小的部分。所有这些函数都以一个日期表达式作为参数,并返回一个数字。这里有一个如何使用这些函数的例子: The Month is :<%=MONTH(DATE)%>
The Day is : <%=DAY(DATE)%>
The weekday is :<%=WEEKDAY(DATE)%>
The year is :<%=YEAR(DATE)%> 假设当前日期是1997年8月9日,星期三。如果你把上面的例子包含在一个ASP网页中,在浏览器中将显示如下的文字: The Month is : 7 The Day is : 9 The weekday is : 4 The year is : 1997 注意函数weekday()假定一个星期的第一天是星期日。如果你想把星期一作为一周的第一天,你可以使用如下的语句: The weekday is :<%=weekday(DATE,vbWednesday)%>

相关主题
文本预览
相关文档 最新文档