文档

聚合函数

更新时间:

时空函数中的聚合函数可以将多个点或多条线段聚合为一条线段,即将多个Point或LineString类型的时空对象构造为一个LineString对象。本文介绍Lindorm流引擎支持的时空聚合函数。

ST_MakeLine_Agg

将给定的Point或LineString列,构造为一个LineString对象。

语法

geometry ST_MakeLine_Agg(geometry geom);

参数

参数

描述

geom

指定的Geometry列。

说明
  • 仅支持Point和LineString类型的列。

  • 当给定多个LineString类型的Geometry对象时,构造过程将删除重复的节点。

  • 当给定Point类型的Geometry对象时,不会删除重复的节点。

  • 该函数按照输入顺序构造线段,不进行排序。

示例

  • 示例一

    假设表结构如下,从上往下依次为数据的输入顺序。

    id

    name

    geom

    1

    A

    POINT (0 0)

    2

    B

    POINT (0 1)

    3

    C

    POINT (0 2)

    执行以下命令,将geom列构建为LindString对象。

    SELECT ST_AsText(ST_MakeLine_Agg(geom));

    返回结果:

    LINESTRING (0 0, 0 1, 0 2)
  • 示例二

    假设表结构如下,从上往下依次为数据的输入顺序。

    id

    name

    geom

    1

    A

    POINT (0 0)

    3

    C

    POINT (0 2)

    2

    B

    POINT (0 1)

    执行以下命令,将geom列构建为LineString对象。

    SELECT ST_AsText(ST_MakeLine_Agg(geom));

    返回结果:

    LINESTRING (0 0, 0 2, 0 1)

从示例一和示例二的返回结果可以看出,ST_MakeLine_Agg函数仅按照数据输入顺序构造线段,不进行排序。

ST_MakeLine_Ts_Agg

将给定的Point或LineString列,构造为LineString对象,并按照输入的时间戳(Timestamp)列进行排序。

语法

geometry ST_MakeLine_Ts_Agg(geometry geom, timestamp ts)

参数

参数

描述

geom

指定的Geometry列。

ts

指定的Timestamp列。

说明
  • 仅支持Point和LineString类型的列。

  • 当给定多个LineString类型的Geometry对象时,构造过程将删除重复的节点。

  • 当给定的Geometry对象为Point类型时,构造过程中不会删除重复的节点。

示例

  • 示例一:

    假设表结构如下,从上往下依次为数据的输入顺序。

    id

    name

    ts

    geom

    1

    A

    2022-01-01 10:00:00

    POINT (0 0)

    2

    B

    2022-01-01 10:00:03

    POINT (0 1)

    3

    C

    2022-01-01 10:00:02

    POINT (0 2)

    执行以下命令,将geom列构建为LineString对象,并按照ts列进行排序。

    SELECT ST_AsText(ST_MakeLine_Ts_Agg(geom,ts));

    返回结果:

    LINESTRING (0 0, 0 2, 0 1)
  • 示例二

    假设表结构如下,从上往下依次为数据的输入顺序。

    id

    name

    ts

    geom

    1

    A

    2022-01-01 10:00:00

    POINT (0 0)

    3

    C

    2022-01-01 10:00:03

    POINT (0 2)

    2

    B

    2022-01-01 10:00:02

    POINT (0 1)

    执行以下命令,将geom列构建为LineString对象,并按照ts列进行排序。

    SELECT ST_AsText(ST_MakeLine_Ts_Agg(geom,ts));

    返回结果:

    LINESTRING (0 0, 0 1, 0 2)
  • 本页导读 (1)
文档反馈