Я пытаюсь создать представление или таблицу, где многоугольники, созданные из точечных буферов, и группировать все полигоны в зависимости от года. Поле данных из исходной таблицы:Создание буферов postgis таблицы из точек с использованием фильтра даты
point_id(int), point_created(date), geom geometry(Point,3301)
1, 2014-05-09, point
2, 2015-01-01, point
2, 2015-02-05, point
3, 2016-02-05, point
4, 2017-02-10, point
Я был в состоянии создать таблицу, в которой я сгруппированную все точки по годам и генерируемую буфер, как MultiPolygon но то, что мне нужно, чтобы сгруппировать точки на основе даты между годами (группа более чем один год пункты вместе), так что таблица должна выглядеть следующим образом:
polygon(geom), nr_of_features(int), year(string)
1, 1, 2014(all point from 2014)
2, 3, 2015(all points from 2014 to 2015)
3, 4, 2016(all points from 2014 to 2016)
4, 5, 2017(all points from 2014 to 2017)
Script I, использую прямо сейчас:
CREATE TABLE my_new_table as
SELECT ST_Union(ST_Buffer(geom,10))::geometry(MultiPolygon,3301) as polygon,count(point_id)::integer as nr_of_features,
extract(year from point_created) as year
FROM my_table
group by year;
Любая помощь приветствуется.
На самом деле я попробовал это также, но проблема в том, что его не группировка всех точек между диапазон дат, но все еще только один год точек, выборки: при Т .date BETWEEN '2014-01-01' AND '2015-12-31' THEN 2015 дайте мне результат, где все точки с даты 2015-01-01 по 2015-12-31, но мне нужны все предыдущие годы до дата 2015-12-31. – Kajar
Извините, мой ответ был неправильным, я обновил его. CASE ... КОГДА всегда останавливается в первом матче. – banazs