YashanDB ST_EXTENT函数

ST_EXTENT函数的功能是返回一个包围一组geometry的二维边界框,是一个聚合函数,返回类型是BOX2D。

geometry

通用表达式,其值必须为有效的ST_GEOMETRY类型的数据。

本函数遵守如下规则:

  • 当输入的一组geometry全部为NULL或全部为EMPTY时,该函数返回NULL。
  • 本函数只计算2D结果,如果坐标中有Z轴将直接忽略Z坐标进行计算。
  • geometry不能做为GROUP BY列。
  • 该函数无法使用DISTINCT和ALL。
  • 该函数无法指定OVER关键字去作为窗口函数使用。

示例(单机HEAP表)

-- 1.创建表
DROP TABLE IF EXISTS geom;
CREATE TABLE geom(id INT, col_geom GEOMETRY);
INSERT INTO geom VALUES(1, ST_GEOMFROMTEXT('POINT(1 2)'));
INSERT INTO geom VALUES(1, ST_GEOMFROMTEXT('LINESTRING(3 4, 5 2)'));

-- 2.创建BOX2D的输出函数
CREATE OR REPLACE FUNCTION BOX2D_OUT(box BOX2D) RETURN VARCHAR AS
    res VARCHAR(100);
BEGIN
    res := 'BOX(' || box.xmin || ' ' || box.xmax || ',' || box.ymin || ' ' || box.ymax || ')';
RETURN res;
END;
/
    
-- 3.通过聚合函数对表中的GEOMETRY进行聚合
SELECT BOX2D_OUT(ST_EXTENT(col_geom)) res FROM geom;

RES
---------------------------------------------------------------- 
BOX(1.0E+000 5.0E+000,2.0E+000 4.0E+000)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值