Saltar al contenido

Crear una tabla dinámica con PostgreSQL

Siéntete libre de compartir nuestra web y códigos con otro, necesitamos tu ayuda para hacer crecer esta comunidad.

Solución:

Primero calcule el promedio con la función agregada avg():

SELECT neighborhood, bedrooms, avg(price)
FROM   listings
GROUP  BY 1,2
ORDER  BY 1,2

Luego alimenta el resultado al crosstab() función como se indica en gran detalle en esta respuesta relacionada:

  • Consulta de tabulación cruzada de PostgreSQL

La mejor manera de construir tablas dinámicas en Postgres son las declaraciones Case.

select neighborhood,
round(avg((case when bedroom = 0 then price else 0 end)),2) as "0",
round(avg((case when bedroom = 1 then price else 0 end)),2) as "1",
round(avg((case when bedroom = 2 then price else 0 end)),2) as "2",
round(avg((case when bedroom = 3 then price else 0 end)),2) as "3",
from listings
group by neighborhood;

Esta fue mi salida

NEIGHBORHOOD                  0          1          2          3
-------------------- ---------- ---------- ---------- ----------
downtown                      0     373.38     328.25     524.63
riverview                     0     256.83          0       1341
north                         0     199.15     507.85     986.31

Te mostramos las reseñas y valoraciones de los usuarios

Acuérdate de que tienes la capacidad de reseñar tu experiencia si acertaste tu preocupación a tiempo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *