PostgreSQL - Consulta CrossTab PostgreSQL

 
Vista:
Imágen de perfil de Luis
Val: 2
Ha disminuido su posición en 4 puestos en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Consulta CrossTab PostgreSQL

Publicado por Luis (2 intervenciones) el 02/08/2018 21:49:21
Buenas tardes,
Tengo una tabla donde guardo las descargas de archivos de mi pagina que contiene los siguientes campos:
Tema, Archivo, Anho, Mes, Total

lo que necesito realizar es un consulta crosstab en PostgreSQL que me muestre un reporte similar a la foto adjunta.

En este reporte:
el tema y archivo se agrupan
el año y mes se convierten en la cabecera de cada columna
total es la sumatoria

en Microsoft access la consulta sería:

TRANSFORM Sum(total) AS SumaDetotal
SELECT tema, archivo
FROM Descargas
GROUP BY tema, archivo
ORDER BY [anho] & [mes]
PIVOT [anho] & [mes];


me podrían ayudar con esto por favor.
gracias.
saludos.

Screenshot_1
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Pancho
Val: 256
Oro
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Consulta CrossTab PostgreSQL

Publicado por Pancho (110 intervenciones) el 18/12/2018 23:38:45
Hola

Esto es solo una aproximacion al problema, de aqui en adelante puedes ampliar informacion en la documentacion oficial de PostgreSQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SELECT *
FROM crosstab(
	E'SELECT
		(tema || \' - \' || archivo)::text denominacion,
		(anno || \'-\' || \'0\' || mes)::text periodo,
		sum(valor)::smallint
	 FROM sample
	 GROUP BY (tema || \' - \' || archivo)::text, (anno || \'-\' || \'0\' || mes)::text
	 ORDER BY 1, 2
'
) AS final_result(
	tema_archivo text,
	P201801 smallint,
	P201802 smallint,
	P201803 smallint,
	P201804 smallint,
	P201805 smallint,
	P201806 smallint,
	P201807 smallint,
	P201808 smallint
);


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar