名称

ST_CountAgg — 聚合。返回一组光栅的给定波段中的像素数。如果未指定波段,则默认为波段 1。如果 exclude_nodata_value 设置为 true,则只会统计不等于 NODATA 值的像素。

语法

bigint ST_CountAgg(raster rast, integer nband, boolean exclude_nodata_value, double precision sample_percent);

bigint ST_CountAgg(raster rast, integer nband, boolean exclude_nodata_value);

bigint ST_CountAgg(raster rast, boolean exclude_nodata_value);

说明

返回一组光栅的给定波段中的像素数。如果未指定波段,则 nband 默认为 1。

如果 exclude_nodata_value 设置为 true,则只会统计值不等于光栅的 NODATA 值的像素。将 exclude_nodata_value 设置为 false 以统计所有像素

默认情况下,将对所有像素进行采样。若要获得更快的响应,请将 sample_percent 设置为介于零 (0) 和一 (1) 之间的值

可用性:2.2.0

示例

WITH foo AS (
    SELECT
        rast.rast
    FROM (
        SELECT ST_SetValue(
            ST_SetValue(
                ST_SetValue(
                    ST_AddBand(
                        ST_MakeEmptyRaster(10, 10, 10, 10, 2, 2, 0, 0,0)
                        , 1, '64BF', 0, 0
                    )
                    , 1, 1, 1, -10
                )
                , 1, 5, 4, 0
            )
            , 1, 5, 5, 3.14159
        ) AS rast
    ) AS rast
    FULL JOIN (
        SELECT generate_series(1, 10) AS id
    ) AS id
        ON 1 = 1
)
SELECT
    ST_CountAgg(rast, 1, TRUE)
FROM foo;

 st_countagg
-------------
          20
(1 row)
                

另请参见

ST_CountST_SummaryStatsST_SetBandNoDataValue