APPROXIMATE_MEDIAN [聚合]

计算一组行中表达式的近似中间值。该函数返回一个 FLOAT 值。

APPROXIMATE_MEDIANAPPROXIMATE_PERCENTILE [聚合] 的别名,参数为 0.5。

行为类型

不可变

语法

APPROXIMATE_MEDIAN ( expression )

参数

表达式
任意 FLOAT 或 INTEGER 数据类型。函数返回近似中值或排序后成为近似中值的内插值。计算中忽略空值。

示例

以下示例使用此表:

CREATE TABLE allsales(state VARCHAR(20), name VARCHAR(20), sales INT) ORDER BY state;
INSERT INTO allsales VALUES('MA', 'A', 60);
INSERT INTO allsales VALUES('NY', 'B', 20);
INSERT INTO allsales VALUES('NY', 'C', 15);
INSERT INTO allsales VALUES('MA', 'D', 20);
INSERT INTO allsales VALUES('MA', 'E', 50);
INSERT INTO allsales VALUES('NY', 'F', 40);
INSERT INTO allsales VALUES('MA', 'G', 10);
COMMIT;

计算此表中所有销售额的近似中间值:

=> SELECT APPROXIMATE_MEDIAN (sales) FROM allsales;
APROXIMATE_MEDIAN
--------------------
                 20
(1 row)

您可以修改此查询,按州对销售进行分组,然后获取每组的近似中间值:

=> SELECT state, APPROXIMATE_MEDIAN(sales) FROM allsales GROUP BY state;
 state | APPROXIMATE_MEDIAN
-------+--------------------
 MA    |                 35
 NY    |                 20
(2 rows)

另请参阅