ST_Resample — Resample a raster using a specified resampling algorithm, new dimensions, an arbitrary grid corner and a set of raster georeferencing attributes defined or borrowed from another raster.
raster ST_Resample(raster  rast, integer  width, integer  height, double precision  gridx=NULL, double precision  gridy=NULL, double precision  skewx=0, double precision  skewy=0, text  algorithm=NearestNeighbor, double precision  maxerr=0.125);
raster ST_Resample(raster  rast, double precision  scalex=0, double precision  scaley=0, double precision  gridx=NULL, double precision  gridy=NULL, double precision  skewx=0, double precision  skewy=0, text  algorithm=NearestNeighbor, double precision  maxerr=0.125);
raster ST_Resample(raster  rast, raster  ref, text  algorithm=NearestNeighbor, double precision  maxerr=0.125, boolean  usescale=true);
raster ST_Resample(raster  rast, raster  ref, boolean  usescale, text  algorithm=NearestNeighbor, double precision  maxerr=0.125);
Resample a raster using a specified resampling algorithm, new dimensions (width & height), a grid corner (gridx & gridy) and a set of raster georeferencing attributes (scalex, scaley, skewx & skewy) defined or borrowed from another raster. If using a reference raster, the two rasters must have the same SRID.
New pixel values are computed using one of the following resampling algorithms:
NearestNeighbor (english or american spelling)
Bilinear
Cubic
CubicSpline
Lanczos
Max
Min
The default is NearestNeighbor which is the fastest but results in the worst interpolation.
A maxerror percent of 0.125 is used if no maxerr is specified. 
                 
               | 
              |
| 
                 Refer to: GDAL Warp resampling methods for more details.  | 
            
Availability: 2.0.0 Requires GDAL 1.6.1+
Enhanced: 3.4.0 max and min resampling options added
SELECT
    ST_Width(orig) AS orig_width,
    ST_Width(reduce_100) AS new_width
FROM (
    SELECT
        rast AS orig,
        ST_Resample(rast,100,100) AS reduce_100
    FROM aerials.boston
    WHERE ST_Intersects(rast,
        ST_Transform(
            ST_MakeEnvelope(-71.128, 42.2392,-71.1277, 42.2397, 4326),26986)
    )
    LIMIT 1
) AS foo;
 orig_width | new_width
------------+-------------
        200 |         100