Jak wykonac zapytanie by w jednym wyniku miec zlaczenie wierszy?

0
Id date type wielkosc
1 2012-10-07 A 123
2 2012-10-07 B 322
3 2012-10-07 C 122
4 2012-10-08 A 433
5 2012-10-08 B 532
6 2012-10-08 C 555

Mam pytanie czy da sie teraz wyciagnac tak by w jednym wierszu zwrotnym bylo tak:

DATA WIELKOSC A WIELKOSC B WIELKOSC C
2012-10-07 123 322 122
2012-10-08 433 532 555

Da się takie cos w ogole osiagnac ?

0

crosstab trzeba doinstalować na postgresie.
Jeśli ci się nie udam to w pon mogę dac funkcję która -= to samo robi.

0

Nie mam zainstalowanego crosstaba a da sie to jakos inaczej zrobic?

0

Zrobiłem takie małe zapytanie

 SELECT t.date,t1.wielkosc AS wielkosc_A, t2.wielkosc AS wielkosc_B
FROM tabela t
LEFT JOIN (SELECT date,wielkosc FROM tabela WHERE type = 'A') t1 ON t.date = t1.date
LEFT JOIN (SELECT date,wielkosc FROM tabela WHERE type = 'B') t2 ON t.date = t2.date
GROUP BY t_date,t1.wielkosc,t2.wielkosc;

ale zwraca dwa razy więcej wyników :/
Nie mam już pomysła

0
masterO napisał(a)

Zrobiłem takie małe zapytanie

 SELECT t.date,t1.wielkosc AS wielkosc_A, t2.wielkosc AS wielkosc_B
FROM tabela t
LEFT JOIN (SELECT date,wielkosc FROM tabela WHERE type = 'A') t1 ON t.date = t1.date
LEFT JOIN (SELECT date,wielkosc FROM tabela WHERE type = 'B') t2 ON t.date = t2.date
GROUP BY t_date,t1.wielkosc,t2.wielkosc;

ale zwraca dwa razy więcej wyników :/
Nie mam już pomysła

Nie jestem do końca pewien czy tak wypali, bym musiał przetestować, ale spróbuj tak:

SELECT t.date,t.wielkosc AS wielkosc_A, t1.wielkosc AS wielkosc_B, t2.wielkosc AS wielkosc_C
FROM tabela t
LEFT JOIN tabela t1 ON t.date = t1.date AND t1.type = 'B'
LEFT JOIN tabela t2 ON t.date = t2.date AND t2.type = 'C'
WHERE
      t.type = 'A'
0

Może tak prościej będzie:

select date,
  sum(case when type='A' then wielkosz end ) wielkosc_a,
  sum(case when type='B' then wielkosz end ) wielkosc_b,
  sum(case when type='C' then wielkosz end ) wielkosc_c
from test.test1
group by date 

date                 wielkosc_a                   wielkosc_b                   wielkosc_c                        
-------------------- ---------------------------- ---------------------------- ------------------- 
2012-10-07           123                          322                          122                               
2012-10-08           433                          532                          555  

1 użytkowników online, w tym zalogowanych: 0, gości: 1