Per prima cosa calcola la media con la funzione di aggregazione avg():
SELECT neighborhood, bedrooms, avg(price)
FROM listings
GROUP BY 1,2
ORDER BY 1,2
Quindi invia il risultato al crosstab()
funzione come indicato in dettaglio in questa risposta correlata:
- Query a campi incrociati PostgreSQL