Oracel函数--分析函数、OLAP函数

Oracle常用分析函数

 
1.1简单指标函数:
SUM        :该函数计算组中表达式的累积和

MIN        :在一个组中的数据窗口中查找表达式的最小值

MAX        :在一个组中的数据窗口中查找表达式的最大值

AVG        :用于计算一个组和数据窗口内表达式的平均值。

COUNT      :对一组内发生的事情进行累积计数
1.2简单应用函数:

RANK               :根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置

DENSE_RANK :根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置

FIRST               :从DENSE_RANK返回的集合中取出排在最前面的一个值的行

LAST                :从DENSE_RANK返回的集合中取出排在最后面的一个值的行

FIRST_VALUE :返回组中数据窗口的第一个值

LAST_VALUE   :返回组中数据窗口的最后一个值。

LAG                  :可以访问结果集中的其它行而不用进行自连接

LEAD                :LEAD与LAG相反,LEAD可以访问组中当前行之后的行

ROW_NUMBER:返回有序组中一行的偏移量,从而可用于按特定标准排序的行号

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

1.3分析函数:
STDDEV     :计算当前行关于组的标准偏离

STDDEV_POP:该函数计算总体标准偏离,并返回总体变量的平方根

STDDEV_SAMP:该函数计算累积样本标准偏离,并返回总体变量的平方根

VAR_POP    :该函数返回非空集合的总体变量

VAR_SAMP   :该函数返回非空集合的样本变量

VARIANCE   :如果表达式中行数为1,则返回0,如果表达式中行数大于1,则返回VAR_SAMP

COVAR_POP  :返回一对表达式的总体协方差

COVAR_SAMP:返回一对表达式的样本协方差(与总体协方差的区别,空值返回0)

CORR              :返回一对表达式的相关系数

REGR_SLOPE : 返回非空值对拟合的线性回归斜率(相当于COVER_POP(a,b)/VAR_POP(b))

CUME_DIST  :计算一行在组中的相对位置

NTILE       :将一个组分为"表达式"的散列表示

PERCENT_RANK:和CUME_DIST(累积分配)函数类似

PERCENTILE_DISC:返回一个与输入的分布百分比值相对应的数据值

PERCENTILE_CONT:返回一个与输入的分布百分比值相对应的数据值

RATIO_TO_REPORT:该函数计算expression/(sum(expression))的值,它给出相对于总数的百分比

REGR_ (Linear Regression) Functions:这些线性回归函数适合最小二乘法回归线,有9个不同的回归函数可使用

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

CUBE        :按照OLAP的CUBE方式进行数据统计,即各个维度均需统计

ROLLUP      :

二、OLAP函数
完成本章学习后,将能够:
使用标准SQL进行数据挖掘
在标准SQL中使用OLAP函数
执行统计方面的采样(samplings)、排队(rankings)和分位数(quantiles)
了解 OLAP统计函数

2.1 OLAP函数简介
OLAP即联机分析处理(On-Line Analytical Process)。Teradata数据库本身提供
了一些OLAP函数,包括:
RANK - 排队(Rankings)
QUANTILE - 分位数(Quantiles)
CSUM - 累计(Cumulation)
MAVG - 移动平均(Moving Averages)
MSUM - 移动合计(Moving Sums)
MDIFF - 移动差分(Moving Differences)
MLINREG - 移动线性回归(Moving Linear Regression)

2.2 OLAP函数与聚合函数对比
对数据进行分组操作 (类似于GROUP BY 子句)
能够使用QUALIFY子句过滤组 (类似于HAVING 子句)
OLAP函数又与聚合函数不同,因为:
返回满足条件的每行的数据值,而不是组的值
不能在子查询内使用
OLAP函数可以对下面的数据库对象或动作使用:
Tables (Perm, Temp, Derived)
Views
INSERT/SELECT

2.3累计函数
累计函数(CSUM) 计算一列的连续的累计的值。语法为:
CSUM(colname, sort list)
表'daily_sales'在许多查询中都将使用,其定义如下。
CREATE SET TABLE daily_sales ,NO FALLBACK
,NO BEFORE JOURNAL
,NO AFTER JOURNAL

(itemid INTEGER
,salesdate DATE FORMAT 'YY/MM/DD'
,sales DECIMAL(9,2))
PRIMARY INDEX ( itemid );
问题
创建item 10从1998年1月和2月的连续的日汇总报表。

解答
SELECT salesdate, sales, csum(sales, salesdate)
FROM daily_sales
WHERE salesdate BETWEEN 980101 AND 980301
AND itemid = 10;
结果
salesdate sales Csum
98/01/01 150.00 150.00
98/01/02 200.00 350.00
98/01/03 250.00 600.00
98/01/05 350.00 950.00
98/01/10 550.00 1500.00
98/01/21 150.00 1650.00
98/01/25 200.00 1850.00
98/01/31 100.00 1950.00
98/02/01 150.00 2100.00
98/02/03 250.00 2350.00

98/02/06 350.00 2700.00
98/02/17 550.00 3250.00
98/02/20 450.00 3700.00
98/02/27 350.00 4050.00

在上面的报表中,每行都代表item 10一天的数据。注意,不是每天都销售了
item 10。最右边的列代表其在两个月内的累计销售额。
如果想每月重新累计,该怎么办?
累计汇总可以使用GROUP BY子句在特殊的点复位,即重新开始累计。注
意&#x

你可能感兴趣的:(数据分析,Oracle,分析函数,OLAP)