全部產品
Search
文件中心

:彙總函式

更新時間:Apr 16, 2025

時空函數中的彙總函式可以將多個點或多條線段彙總為一條線段,即將多個Point或LineString類型的時Null 物件構造為一個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)