#MEDIAN

median
MEDIAN ( ALL expr ) OVER ( query_partition_clause )

MEDIAN函数计算给定参数expr的中位数,仅支持expr类型为数值型或者日期型,使用其他数据类型会返回错误。

本函数只支持作用于HEAP表。

函数返回值类型:

数据类型 返回值类型
TINYINT NUMBER
SMALLINT NUMBER
INT NUMBER
BIGINT NUMBER
FLOAT FLOAT
DOUBLE DOUBLE
NUMBER NUMBER
DATE DATE
TIMESTAMP TIMESTAMP
TIME TIME
INTERVAL INTERVAL

单行计算中,当expr的值为空时函数返回NULL;expr为字面NULL时报错。expr使用绑定参数,绑定字面NULL,返回结果NULL。

多行计算中,函数将忽略expr值为空的行。当所有行均为空时,计算结果为NULL。

YashanDB仅支持MEDIAN函数作为窗口函数使用,不支持其作为聚集函数使用。

ALL

表示对所有行计算中位数。

MEDIAN窗口函数不支持使用DISTINCT。

query_partition_clause

窗口函数通用语法。

MEDIAN窗口函数中不支持使用ORDER BY语句。

示例

--创建表exam并插入数据
CREATE TABLE exam(id INT,score INT);
INSERT INTO exam VALUES(1,99);
INSERT INTO exam VALUES(2,80);
INSERT INTO exam VALUES(3,80);

SELECT id, score FROM exam;
          ID        SCORE
------------ ------------
           1           99
           2           80
           3           80

SELECT MEDIAN(score) OVER () res FROM exam;
                RES
-------------------
                 80
                 80
                 80

SELECT MEDIAN(score) OVER (PARTITION BY id) res FROM exam;
                 RES
--------------------
                  99
                  80
                  80

SELECT MEDIAN(null) OVER() FROM sys.dual;
[1:15]YAS-04322 invalid datatype
下载文档
复制链接