小编New*_*elp的帖子

PostgreSQL:使用聚合函数更新

我想使用聚合函数更新paneldata设置列的表ibase.

UPDATE paneldata p
SET ibase=SUM(1/i.dist)
FROM ibaselang i
WHERE p.gid=i.gid
AND i.instp<p.period
Run Code Online (Sandbox Code Playgroud)

这导致了 ERROR: aggregate functions are not allowed in UPDATE

表定义

CREATE TABLE public.ibaselang
(
  gid integer,
  dist double precision,
  buildid integer,
  instp smallint
)
WITH (
  OIDS=FALSE
);
Run Code Online (Sandbox Code Playgroud)

解决方法

不幸的是,我不知道如何WHERE在子查询中实现我的函数.

sql postgresql aggregate-functions

9
推荐指数
3
解决办法
6953
查看次数

两个表之间最接近点的唯一分配

在安装了PostGis 2.2.0的Postgres 9.5数据库中,我有两个带有几何数据(点)的表,我想将一个表中的点分配给另一个表中的点,但我不想要分配两次.一旦分配了一个,就不应该将其分配给另一个.buildings.gidbuildings.gidpvanlagen.buildid

表定义

buildings:

CREATE TABLE public.buildings (
  gid numeric NOT NULL DEFAULT nextval('buildings_gid_seq'::regclass),
  osm_id character varying(11),
  name character varying(48),
  type character varying(16),
  geom geometry(MultiPolygon,4326),
  centroid geometry(Point,4326),
  gembez character varying(50),
  gemname character varying(50),
  krsbez character varying(50),
  krsname character varying(50),
  pv boolean,
  gr numeric,
  capac numeric,
  instdate date,
  pvid numeric,
  dist numeric,
  CONSTRAINT buildings_pkey PRIMARY KEY (gid)
);

CREATE INDEX build_centroid_gix
  ON public.buildings
  USING gist
  (st_transform(centroid, 31467));

CREATE INDEX buildings_geom_idx
  ON public.buildings
  USING …
Run Code Online (Sandbox Code Playgroud)

sql postgresql postgis duplicates knn

4
推荐指数
1
解决办法
581
查看次数

标签 统计

postgresql ×2

sql ×2

aggregate-functions ×1

duplicates ×1

knn ×1

postgis ×1