SQL - zagnieżdżanie funkcji agregujących

0

Szukałem w sieci ale nigdzie nie znalazłem informacji o zagnieżdżaniu funkcji agregujących.
Doszedłem do takiej wersji ale zgłasza błąd.

SELECT AVG( SELECT SUM(WYDANO-ZWROT) FROM POZYCJA) FROM POZYCJA GROUP BY ID_ASORT

0

a co by to miało zwrócić bo tutaj podzapytanie zwróci JEDEN rekord i wywołanie na nim AVG (nawet jakby błędu nie było) jest bez sensu

0

Błąd zwraca, bo próbujesz grupować po kolumnie, której nie ma w zapytaniu. Generalnie - patrz: odpowiedź Misiekd
Poza tym nie wiem, na jakiej bazie próbujesz to robić, ale np. Oracle nie łyka konstrukcji

select avg(select ...) ... 
0
SELECT AVG(kol) srednia FROM (SELECT SUM(WYDANO-ZWROT) kol FROM GROUP BY ID_ASORT) x
0
Marcin.Miga napisał(a)
SELECT AVG(kol) srednia FROM (SELECT SUM(WYDANO-ZWROT) kol FROM GROUP BY ID_ASORT) x

To raczej nie ma szans zadziałać. Myślę, że najbliższe temu, o co prawdopodobnie chodziło autorowi, jest takie zapytanie:

SELECT AVG(x.kol) srednia FROM (SELECT sum(WYDANO-ZWROT) kol, ID_ASORT FROM POZYCJA GROUP BY ID_ASORT) x
0

Baza: SQL Server
Nazwa tabeli: Pozycja(id, data, id_asort, wydano, zwrot)
Cel: obliczenie średniej sprzedaży z różnicy wydano-zwrot dla każdego id asortymentu

Podana wyżej fraza zwraca tylko jedną wartość.

0
SELECT ID_ASORT, AVG(WYDANO-ZWROT) srednia FROM POZYCJA GROUP BY ID_ASORT

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