第10章-高级分析函数

来源:互联网 发布:南方s730网络设置 编辑:程序博客网 时间:2024/05/17 02:08

Advanced Analytic Functions

The followingbuilt-in advanced analytic functions are Greenplum extensions of the PostgreSQLdatabase. Analytic functions are immutable.

 

Table 139:Advanced Analytic Functions

Function

Return Type

Full Syntax

描述

matrix add(array[], array[])

smallint[], int[], bigint[], float[]

matrix

两个二维矩阵的加法,这两个矩阵必须能符合规则

add( array[[1,1], [2,2]], array[[3,4], [5,6]])

matrix

smallint[]int[], bigint[], float[]

matrix

将二维,三维矩阵相乘,这两个矩阵必须能兼容

multiply( array[], array[])

multiply( array[[2,0, [0,2,0],[0,0,2]], array[[3,0,3], [0,3,0],[0,0,3]])

matrix

int[], float[]

matrix

将二维数组和一个标量数值相乘。

multiply( array[], expr)

multiply( array[[1,1, [2,2,2], [3,3,3]],

 

2)

matrix

Same as input array type.

matrix

转置一个二维数组。

transpose( array[])

transpose( array [[1,1,1],[2,2,2]])

pinv(array [])

smallint[]int[], bigint[], float[]

pinv(array[[2.

Calculates the Moore- Penrose pseudoinverse of a matrix.计算矩阵的Moore-Penrose伪逆。

5,0,0],[0,1,0],

[0,0,.5]])

unnest (array[])

set of anyelement

unnest( array['one', 'row', 'per', 'item'])

将一维数组转换为行。 返回a
PostgreSQL中的元素集合(polymorphic pseudotype)。

 

Table 140:Advanced Aggregate Functions

Function

Return

Type

Full Syntax

描述

MEDIAN (expr)

 

timestamp,

timestampz,

interval,

float

 

MEDIAN (expression)

Example:

SELECT department_id,

MEDIAN(salary)

FROM employees

GROUP BY department_id;

 

可以把一个二维数组作为输入。 将这些数组视为矩阵。

PERCENTILE CONT (expr) WITHIN GROUP (ORDER BY expr [DESC/ASC])

timestamp,

timestampz

interval,

float

PERCENTILE_CONT(percentage) WITHIN

GROUP (ORDER BY expression)

Example:

SELECT department_id,

PERCENTILE_CONT (0.5) WITHIN

GROUP (ORDER BY salary DESC)

"Median_cont";

FROM employees GROUP BY

department_id;

 

执行假设连续分布模型的逆分布函数。 它采用百分位值和排序规范,并返回与参数的数字数据类型相同的数据类型。 此返回值是执行线性插值后的计算结果。 在这个计算中忽略空值。

PERCENTILE DISC (expr) WITHIN GROUP (ORDER BY expr [DESC/ASC])

timestamp,

timestampz

interval,

float

PERCENTILE DISC(percentage) WITHIN ,GROUP (ORDER BY expression)

Example:

SELECT department id,

PERCENTILE DISC (0.5) WITHIN GROUP (ORDER BY salary DESC) "Median desc";

FROM employees GROUP BY department id;

执行假设离散分布模型的逆分布函数。 它需要一个百分位值和排序规范。 这个返回的值是集合中的一个元素。 在这个计算中忽略空值。

sum(array[])

smallint[]

bigint[],

float[]

ijUrr[;aa,rray[[1,2],[3,4]])

Example:

CREATE TABLE mymatrix (myvalue int[]);

INSERT INTO mymatrix VALUES (array[[1,2],[3,4]]);

INSERT INTO mymatrix VALUES (array[[0,1],[1,0]]);

SELECT sum(myvalue) FROM mymatrix; sum

{{1,3},{4,4}}

执行矩阵求和。 可以作为输入被视为矩阵的二维数组。

Pivot_sum

int[],

Pivot_sum( array[,A1,,,A2,], attr,

使用总和来解析重复条目的数据透视表聚合。

(label[], label,

bigint[],

value)

 

expr)

float[]

 

 

mregr_coef(expr, array[])

float[]

mregr coef(y, array[1, x1, x2])

四个mregr *聚合使用普通最小二乘法执行线性回归。 mregr_coef计算回归系数。 由于返回数组包含每个独立变量的系数,因此mregr_coef的返回数组的大小与独立变量的输入数组的大小相同。

mregr_r2 (expr, array[])

float

mregr r2(y, array[1, x1, x2])

四个mregr *聚合使用普通最小二乘法执行线性回归。 mregr_r2计算回归的r平方误差值.

mregr_pvalues( expr, array[])

float[]

mregr pvalues(y, array[1, x1, x2])

四个mregr *聚合使用普通最小二乘法执行线性回归。 mregr_pvalues计算回归的p值。

mregr_tstats(expr, array[])

float[]

mregr tstats(y, array[1, x1, x2])

四个mregr *聚合使用普通最小二乘法执行线性回归。 mregr tstats计算回归的t统计量。

nb_classify(text[],

bigint,

bigint[],

bigint[])

text

nbclassify(classes, attr count, class count, class total)

使用朴素贝叶斯分类器对行进行分类。 该汇总使用训练数据的基线来预测新行的分类,并返回出现在新行中的可能性最大的类。

nb_probabilities(text

bigint,

bigint[],

bigint[])

text

:[],

nb probabilities(classes, attr count, class count, class total)

使用朴素贝叶斯分类器确定每个类别的概率。 该汇总使用训练数据的基线来预测新行的分类,并返回每个类将出现在新行中的概率。