2013-12-16 19 views
10

Załóżmy, że mam tabeli w PostgreSQL nazywa listings, który wygląda tak:Tworzenie tabeli przestawnej z PostgreSQL

id neighborhood bedrooms price 
1  downtown  0   256888 
2  downtown  1   334000 
3  riverview  1   505000 
etc. 

Jak napisać kwerendę krzyżową pokazuje średnią cenę jednej sypialni jako kolumny i dzielnicach jak rzędy?

Wyjście kwerendy powinien wyglądać mniej więcej tak (numery są wykonane, kolumny są sypialnie):

  0  1  2  3 
riverton 250000 300000 350000 - 
downtown 189000 325000 -  450000 

Odpowiedz

17

Najpierw obliczyć średnią z łącznej funkcji avg():

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

Następnie podaj wynik funkcji crosstab() zgodnie ze szczegółową instrukcją w tej powiązanej odpowiedzi:

+0

Dzięki. Co oznacza tutaj GROUP BY 1,2? – Avishai

+4

@Avishai: (w pełni funkcjonalny) skrót składni z pozycjonowanymi odnośnikami, skrót od 'GROUP BY sąsiedztwa, sypialnie' –

Powiązane problemy