Cześć,
Mam problem z wyprodukowaniem odpowiedniego zapytania. Mam następującą tabelę:
DATA | ID | VALUE |
---|---|---|
201101012222 | 0 | 22 |
201101012222 | 1 | 23 |
201101012227 | 0 | 22 |
201101012227 | 1 | 20 |
201101012227 | 2 | 30 |
To co chciałabym otrzymać to średnią z wartości value, gdzie:
- dodajemy wszystkie wartości VALUE o takiej samej dacie
- dzielimy przez liczbę wystąpień ID o takiej samej dacie
czyli wynik zapytania powinien być następujący:
DATA | AVER |
---|---|
201101012222 | 22,5 |
201101012227 | 24 |
Niestety nie wiem jak osiągnąć taki wynik. Jedyne co mi się udało wyprodukować to poniższe zapytanie, jednak jest ono złe, gdyż zlicza mi liczbę wystąpień id w całej tabeli a nie dla poszczególnych dat:
[code]
select data, n, sum(value) from (
select
data,
(select count(*) from (select id from TABELA group by id)) n,
value
from TABELA
) group by data, n
[/code]