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