Ho una tabella con il nome dell'entità, l'anno e il numero dell'attività come qui sotto. Durante alcuni anni non c'è alcuna attività.Calcolo della somma parziale che inizia x anni prima
name | year | act_num
-----+------+---------
aa | 2000 | 2
aa | 2001 | 6
aa | 2002 | 9
aa | 2003 | 15
aa | 2005 | 17
b | 2000 | 3
b | 2002 | 4
b | 2003 | 9
b | 2005 | 12
b | 2006 | 2
Per crearlo su postgresql;
CREATE TABLE entity_year_activity (
name character varying(10),
year integer,
act_num integer
);
INSERT INTO entity_year_activity
VALUES
('aa', 2000, 2),
('aa', 2001, 6),
('aa', 2002, 9),
('aa', 2003, 15),
('aa', 2005, 17),
('b', 2000, 3),
('b', 2002, 4),
('b', 2003, 9),
('b', 2005, 12),
('b', 2006, 2);
mi piacerebbe avere il numero totale degli x anni passati con il numero di queste attività l'anno per ogni entità per ogni anno come muggito.
Come esempio per x = tre anni.
name | year | act_num | total_3_years
-----+------+---------+---------------
aa | 2000 | 2 | 2
aa | 2001 | 6 | 8
aa | 2002 | 9 | 17
aa | 2003 | 15 | 30
aa | 2004 | 0 | 24
aa | 2005 | 17 | 32
b | 2000 | 3 | 3
b | 2001 | 0 | 3
b | 2002 | 4 | 7
b | 2003 | 9 | 13
b | 2005 | 12 | 21
b | 2006 | 2 | 14
Grande domanda. Dati campione, uscita prevista, DDL. Vale la pena notare che Stack Overflow non conserva le tabulazioni, quindi, l'output di 'COPY' è stato alterato. Meglio usare 'COPY ... CSV'. –