Повторно использовать вычисленное значение выбора

Я пытаюсь использоватьST_SnapToGrid а потомGROUP BY ячейки сетки (х, у). Вот что я сделал первым:

SELECT
  COUNT(*)                      AS n,
  ST_X(ST_SnapToGrid(geom, 50)) AS x,
  ST_Y(ST_SnapToGrid(geom, 50)) AS y
FROM points
GROUP BY x, y

Я не хочу пересчитыватьST_SnapToGrid для обоихx а такжеy, Поэтому я изменил его, чтобы использовать подзапрос:

SELECT
  COUNT(*)   AS n,
  ST_X(geom) AS x,
  ST_Y(geom) AS y
FROM (
  SELECT 
      ST_SnapToGrid(geom, 50) AS geom
  FROM points
) AS tmp
GROUP BY x, y

Но когда я бегуEXPLAINоба эти запроса имеют одинаковый план выполнения:

GroupAggregate  (...)
  ->  Sort  (...)
        Sort Key: (st_x(st_snaptogrid(points.geom, 0::double precision))), (st_y(st_snaptogrid(points.geom, 0::double precision)))
        ->  Seq Scan on points  (...)

Вопрос: Будет ли PostgreSQL повторно использовать значение результатаST_SnapToGrid()?
Если нет, есть ли способ заставить это сделать это?

Ответы на вопрос(1)

Ваш ответ на вопрос