Todos os produtos
Search
Central de documentação

ApsaraDB RDS:ST_HMTStats

Última atualização: Jul 05, 2026

Calcula estatísticas de um tile de heatmap para renderização de mapas.

Sintaxe

record ST_HMTStats(bytea hmt, integer factor default 1, out float8 min, out float8 max, out float8 mean, out float8 sum, out float8 count, out float8 std, out float8 median, out float8 mode, out float8[] percentile);

Parâmetros

Parâmetro

Tipo

Padrão

Descrição

hmt

bytea

Binário do tile de heatmap codificado no formato protobuf. Gere esse valor com ST_AsHMT.

factor

integer

1

Intervalo de amostragem. O valor n indica que um a cada n valores entra em cada cálculo estatístico. Por exemplo, factor=4 amostra cada quarto valor e reduz a contagem de 100 para 25.

Valores de retorno

Retorna um record com os seguintes campos de saída:

Campo

Tipo

Descrição

min

float8

Valor mínimo.

max

float8

Valor máximo.

mean

float8

Valor médio.

sum

float8

Soma de todos os valores amostrados.

count

float8

Quantidade de valores incluídos no cálculo.

std

float8

Desvio padrão.

median

float8

Mediana dos valores.

mode

float8

Moda (valor mais frequente).

percentile

float8[]

Array com 100 valores de percentil.

Exemplos

Os exemplos abaixo usam a mesma tabela de teste. Crie-a uma única vez e execute qualquer uma das consultas.

CREATE TABLE test_table AS
SELECT i num,
    ST_setSRID(st_makepoint((i-0.5)::numeric, (i-0.5)::numeric), 4326) geom,
    i*100::int4 weight,
    i*i*i::float8 volume
FROM generate_series(1, 10) i;

Exemplo 1: Amostragem padrão (factor=1)

O cálculo inclui todos os 100 valores do tile.

SELECT (ST_HMTstats(ST_AsHMT(the_geom,
    ST_MakeEnvelope(0, 0, 10, 10),
    10,
    10))).*
FROM test_table;

Saída esperada:

 min | max | mean | sum | count |        std         | median | mode |                  percentile
-----+-----+------+-----+-------+--------------------+--------+------+------------------------------------------------
   0 |   2 | 0.19 |  19 |   100 | 0.5778408085277467 |      0 |    0 | {0,0,...,0,0,1,2,2,2,2,2,2,2,2}

Exemplo 2: Amostragem esparsa (factor=4)

A amostragem ocorre a cada quatro valores, o que reduz a contagem para 25.

SELECT (ST_HMTstats(ST_AsHMT(the_geom,
    ST_MakeEnvelope(0, 0, 10, 10),
    10,
    10), 4)).*
FROM test_table;

Saída esperada:

 min | max | mean | sum | count |        std         | median | mode |                  percentile
-----+-----+------+-----+-------+--------------------+--------+------+------------------------------------------------
   0 |   2 | 0.16 |   4 |    25 | 0.5425863986500215 |      0 |    0 | {0,0,...,0,0,2,2,2,2,2,2,2}