時空函數中的彙總函式可以將多個點或多條線段彙總為一條線段,即將多個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)