小编Com*_*mic的帖子

将多行合并为单行

在 PostgreSQL 9.5 中,我有一个名为的表reports

CREATE TABLE public.reports (
  id BIGSERIAL PRIMARY KEY,
  id_station character(11) NOT NULL,
  date date NOT NULL,
  element character(4) NOT NULL,
  value smallint NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

对于每个站(id_station列)和每一天(date列),我可能有多个值类型(元素列) : TMIN, TMAX, TAVG(有时这些值不存在:对于给定的一天,我可能只有 aTMIN和 a TMAX)。

这是一个(假)样本:

22;"FR069029001";"1925-01-01";"TMAX";130
23;"FR069029001";"1925-01-01";"TMIN";-25
24;"FR069029001";"1925-01-01";"TAVG";0
Run Code Online (Sandbox Code Playgroud)

我想使用此表将每个站点和每天的这些值合并在一行中:

CREATE TABLE public.reports_con (
id SERIAL PRIMARY KEY,
id_station character(11) NOT NULL,
date date NOT NULL,
tmin smallint,
tmax smallint,
tavg smallint
);
Run Code Online (Sandbox Code Playgroud)

我想达到这个结果: …

postgresql aggregate pivot aggregate-filter

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

aggregate ×1

aggregate-filter ×1

pivot ×1

postgresql ×1