68.PL/SQL中的case语句
从dual中选择(当DUMMY='X '然后0否则1结束时的情况)作为标志;
case的第一种用法:
当“a”然后是1时的大小写列
当b是2时
else 0结束
这种用法与decode相同。
case的第二种用法:
得分时的情况& lt60然后是d
当分数>时;=60,得分& lt70然后是c
当分数>时;=70且得分& lt80然后是b
否则结束
69.NVL(表达式1,表达式2)
NVL(表达式1,表达式2)->Expr1为空,返回expr2;不为NULL并返回expr1。注意两者同类型。
NVL2(表达式1,表达式2,表达式3)-& gt;Expr1不为空,expr2被返回;为NULL并返回expr3。如果expr2和expr3的类型不同,则expr3将被转换为expr2的类型。
NULLIF (expr1,expr 2)-& gt;相等返回NULL,不相等返回expr1。
Oracle分析功能参考手册
=============================================
Oracle从8.1.6开始就提供了分析函数,用于计算一些基于组的聚合值。它与聚合函数的不同之处在于,它为每个组返回多行,而聚合函数只为每个组返回一行。
常用的分析功能如下:
row_number() over(分区依据...以...排序...)
排名()超过(分区依据...以...排序...)
dense_rank() over(分区依据...以...排序...)
count()超过(分区依据...以...排序...)
最大()超过(分区依据...以...排序...)
min() over(分区依据...以...排序...)
sum() over(分区依据...以...排序...)
平均()超过(分区依据...以...排序...)
first_value() over(分区依据...以...排序...)
last_value() over(分区依据...以...排序...)
lag() over(分区依据...以...排序...)
将()置于(分区依据...以...排序...)
以下示例中使用的表来自Oracle提供的HR用户下的表。如果没有安装该用户,它可以在SYS用户下运行。
$ Oracle _ home/demo/schema/human _ resources/HR _ main . SQL来创建它。
除了本文的内容,您还可以参考:
汇总和多维数据集[URL]http://xsb.itpub.net/post/419/29159[/URL]
分析功能示例介绍:[URL]http://xsb.itpub.net/post/419/44634[/URL]
如果本文中没有指定,默认情况下将在HR用户下运行该示例。
了解窗口功能:
窗口函数指定分析函数的数据窗口大小。该数据窗口大小可以随着行的变化而变化,例如:
Over(order by salary)根据薪资顺序累加,order by是默认的开窗函数。
按部门划分。
超过(按50以上150以下的工资范围排序)
每行对应的数据窗口是前一行的幅度值不超过50,后一行的幅度值不超过150。
超过(按前面50行和后面150行之间的薪金行排序)
每行对应的数据窗口是前50行和后150行。
over(按无界之前和无界之后之间的薪金行排序)
每行对应的数据窗口是从第一行到最后一行,相当于:
超过(按无界之前和无界之后之间的薪金范围排序)
主要参考资料:专家一对一,Tom kyte,《Oracle 9i SQL参考》第六章。
哦哦哦哦哦哦哦
70.AVG
描述:用于计算组和数据窗口中表达式的平均值。
示例:以下示例中的列c_mavg计算employee表中每个雇员的平均工资报表,该报表是由当前雇员、前者和后者同一个经理的平均值得到的;
SELECT经理标识,姓氏,雇用日期,薪金,
AVG(薪金)超过(按经理标识划分,按聘用日期排序
EN 1之前的行和之后的1行)作为c_mavg
来自员工;
经理ID姓氏聘用日期薪金C MAVG
- - - - -
100 Koch har 1989年9月21日
100德哈恩1993年1月13日
拉斐尔街100号1994年12月7日11000 11966.6667
100考夫林1995年5月1日
100哈特斯坦1996年2月17日13000 9633.33333
100韦斯1996年7月18日8000 11666.6667
100罗素01-10-96 14000 11833.3333
71。求相关系数或方差
描述:返回一对表达式的相关系数,其缩写如下:
COVAR_POP(expr1,expr 2)/STDDEV _ POP(expr 1)* STDDEV _ POP(expr 2))
从统计学上讲,相关性是变量之间相关性的强弱,而变量之间的相关性在某种程度上意味着
最后一个变量的值可以通过其他值来预测。通过返回一个介于-1和1之间的数字,相关
系数给出了相关性的强度,0表示没有相关性。
示例:以下示例返回1998年每月销售收入和每月单位销售额之间关系的累积系数(此示例在sh用户下运行)
SELECT t.calendar_month_number
CORR (SUM(s.amount_sold),SUM(s.quantity_sold))
超过(按日历月数排序)累计CORR
从销售s,乘以t
其中,s.time_id = t.time_id,日历年= 1998
按t.calendar_month_number分组
ORDER BY t . calendar _ month _ number;
日历_月份_数字累计_CORR
- -
一个
2 1
3 .994309382
4 .852040875
5 .846652204
6 .871250628
7 .910029803
8 .917556399
9 .920154356
10 .86720251
11 .844864765
12 .903542662
72。COVAR_POP
描述:返回一对表达式的总协方差。
示例:以下示例CUM_COVP返回定价和最低产品价格的累计总协方差。
选择产品标识,供应商标识,
COVAR_POP(列表价格,最小价格)
超过(按产品标识、供应商标识排序)作为累计COVP,
COVAR_SAMP(list_price,min_price)
作为累计COVS(按产品标识、供应商标识排序)
来自产品信息p
其中类别标识= 29
按产品标识、供应商标识排序;
产品标识供应商标识累计COVP累计COVS
- - - -
1774 103088 0
1775 103087 1473.25 2946.5
1794 103096 1702.77778 2554.16667
1825 103093 1926.25 2568.33333
2004 103086 1591.4 1989.25
2005 103086 1512.5 1815
2416 103088 1475.97959 1721.97619
。
。
73。COVAR_SAMP
描述:返回一对表达式的样本协方差。
样本:以下示例CUM_COVS返回定价和最低产品价格的累积样本协方差。
选择产品标识,供应商标识,
COVAR_POP(列表价格,最小价格)
超过(按产品标识、供应商标识排序)作为累计COVP,
COVAR_SAMP(list_price,min_price)
作为累计COVS(按产品标识、供应商标识排序)
来自产品信息p
其中类别标识= 29
按产品标识、供应商标识排序;
产品标识供应商标识累计COVP累计COVS
- - - -
1774 103088 0
1775 103087 1473.25 2946.5
1794 103096 1702.77778 2554.16667
1825 103093 1926.25 2568.33333
2004 103086 1591.4 1989.25
2005 103086 1512.5 1815
2416 103088 1475.97959 1721.97619
本文链接:http://www.123down.cn/gonglue/227202.html