Consulta sobre Referencias cruzadas
Publicado por John (6 intervenciones) el 14/10/2019 17:36:33
Hola amigos, tengo el siguiente código que me funciona hasta el momento perfecto
dandome como resultado algo así:
la pregunta es: ¿Se puede generar una fila extra llamada por ejemplo total, que me sume el total de cada columna?, así como también lo mismo un total para cada fila?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
CREATE TABLE sales(
id serial,
country VARCHAR(3),
type VARCHAR(15),
month int,
amount numeric(10,2)
);
INSERT INTO sales(country,type,month,amount)
VALUES ('PEN','Course',1,16),('PEN','Course',2,12),('PEN','Course',3,24),
('PEN','Subscription',4,30),('PEN','Subscription',5,30),('PEN','Subscription',6,30),
('PEN','Course',7,16),('PEN','Subscription',8,30),('PEN','Course',9,16),
('PEN','Subscription',10,30),('PEN','Subscription',11,30),('PEN','Course',12,12),
('COL','Subscription',1,30),('COL','Course',4,24),('COL','Subscription',6,30),
('COL','Subscription',12,30),('BOL','Course',1,12),('BOL','Course',3,12),
('MXN','Course',5,16);
CREATE EXTENSION IF NOT EXISTS tablefunc;
SELECT split_part(key,'-',1) AS country, split_part(key,'-',2) AS type, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
FROM crosstab(
'SELECT CONCAT(country,''-'',type) AS key, month, SUM(amount) FROM sales GROUP BY key, month ORDER BY 1,2',
'SELECT month FROM generate_series(1,12) AS month'
) AS (
key text,
Jan NUMERIC(10,2),
Feb NUMERIC(10,2),
Mar NUMERIC(10,2),
Apr NUMERIC(10,2),
May NUMERIC(10,2),
Jun NUMERIC(10,2),
Jul NUMERIC(10,2),
Aug NUMERIC(10,2),
Sep NUMERIC(10,2),
Oct NUMERIC(10,2),
Nov NUMERIC(10,2),
Dec NUMERIC(10,2)
);
la pregunta es: ¿Se puede generar una fila extra llamada por ejemplo total, que me sume el total de cada columna?, así como también lo mismo un total para cada fila?
Valora esta pregunta
0